








Atingiu-se objetivo dessa experiência, que era provar que existe uma quantidade limitada de arquivos que podem ser criados em partições FAT32 em pendrives e ou Hds com menos de 3 Gigabytes ( 3 GB )
Para compilar e executar o Programa digite na console:
$ gcc t1.c -w -o t1 ; ./t1 /media/DANILO/ >execucao1.txt ; ls -la /media/DANILO/t2/ >> execucao1.txt
Onde:
t1.c : é o nome do arquivo que contém o código fonte (.c)
t1 : é o nome do executável
/media/ : é o nome do local onde são montadas as mídias no sistema operacional ubuntu 8.04 LTS ( Hds, cdroms, pendrives, no meu caso pendrive)
DANILO/ : DANILO é o nome do meu pendrive
execucao1.txt: é o nome do arquivo que guardará o resultado da execução do código fonte (.c) mencionado
t2 : nome da pasta criada onde serão criados os arquivos .txt
Realizou-se o texte com um mp3 player de 2GB estragado da Napoli o Resultado do comando:
$ sudo lsusb
[sudo] password for danilomatias:
Bus 007 Device 011: ID 10d6:1101 Actions Semiconductor Co., Ltd D-Wave 2GB MP4 Player / AK1025 MP3/MP4 Player
O resultado obtido em tentar lotar o pendrive, que a princípio é formatado com partição FAT32, com arquivos do tipo texto de tamanhos entre 46 e 48 bytes foi:
3330 arquivos do tipo textos criados
Para ser mais exato 9 arquivos de 46 bytes criados
111 arquivos de 47 bytes criados
719 de 48 bytes
2491 de 49 bytes
De maneira que concluiu-se, com base nos resultados obtidos, pelo menos nesse Mp3, que o número máximo de arquivos em uma pasta nesse mp3 é de 3330, estima-se que o motivo de tal limitação, ocorre pela implementação do sistema de arquivos desse mp3 ser estática, com vetores estáticos, como pensava-se anteriormente
gcc t2.c -w -o t21 ; ./t21 /media/DANILO/ >execucao10.txt ; ls -la /media/DANILO/ >> execucao10.txt
Quando criou-se os arquivos na pasta raiz do mp3 foram criadas apaneas 7127 arquivos todos juntos com tamanho de aproximadamente 320 KB, de maneira que verifica-se a limitação do número de arquivos novamente, isso deve-se a muito provavelmente ao número de I-nodes ser limitados conforme a teoria de sistemas operacionais vista em sala de acordo com o autor Tanenbaum
Os Códigos feitos para gerarem os arquivos podem ser visualizados no frame abaixo ou na página:
http://danilomatias.net76.net/sistemasOperacionais/livres/linux/ubuntu/8_0_4LTS/pendrive/index.html
Os códigos fonte dor arquivos t1.c e t2.c podem ser baixados respectivamente em:
http://danilomatias.net76.net/sistemasOperacionais/livres/linux/ubuntu/8_0_4LTS/pendrive/code/t1.c
http://danilomatias.net76.net/sistemasOperacionais/livres/linux/ubuntu/8_0_4LTS/pendrive/code/t2.c
A saída da console [ shell , como queira ] do programa gerado apartir de t1.c foi colocada no arquivo do tipo texto abaixo:
Para ser mais exato o arquivo gerado pela seguinte linha de comando na console do linux:
$gcc t2.c -w -o t2 ; ./t2 /media/DANILO/ >execucao10.txt ; ls -la /media/DANILO/ >> execucao10.txt
http://danilomatias.net76.net/sistemasOperacionais/livres/linux/ubuntu/8_0_4LTS/pendrive/code/execucao10.html
Já A saída da console [ shell , como queira ] do programa gerado apartir de t2.c foi colocada no arquivo do tipo texto abaixo:
Para ser mais exato o arquivo gerado pela seguinte linha de comando na console do linux:
$ gcc t1.c -w -o t1 ; ./t1 /media/DANILO/ >execucao2.txt ; ls -la /media/DANILO/t2/ >> execucao2.txt
http://danilomatias.net76.net/sistemasOperacionais/livres/linux/ubuntu/8_0_4LTS/pendrive/code/execucao2.html
Após o colega Anderson Cornelio Castaldo Junior [ andersoncornelio@ig.com.br ] efetuar alguns textes com o software gerado apartir dos códigos fontes mencionados e executá-los em um HD ( Hard Disk - disco Rígido ) de 2,6 Gigabytes ( 2,6 GB ) e em um pendrive de 4 GB, no sistema operacional ubuntu 8.10, pôde-se obter os seguintes resultados, conforme podem ser confirmados nas figuras que seguem:
As figuras acima provam que o dispositivo de armazenamento utilizado na experiência utilizava partição FAT32 ( vfat )
Em uma execução conseguiu-se criar apenas 8332 arquivos, pois conforme pode-se observar nas figuras acima, ocorreu falha de segmentação.
Essa falha de segmentação ocorreu devido ao limite que existe para a criação de um número máximo de arquivos.
Provavelmente esse limite está relacionado com a tabela de I-Nodes do sistema de gerenciamento de arquivos FAT32, esse número de 8332 foi obtido testando-se no hd, observa-se que é muito próximo ao número de arquivos do mp3 player de 2 GB, porém no caso do HD como porvavelmente a tabela de I-nodes é maior, o número de arquivos também é maior ...
Testou-se criar arquivos no diretório raiz, como criar um diretório e criar os arquivos ali, em ambos os casos verificou-se a limitação quanto ao número de arquivos que podem ser criados
Caro leitor sinta-se a vontade para testar o limite de número de arquivos em uma pasta no seu computador, se desejar mandar os resultados para o danilomatias19@gmail.com, sinta-se a vontade , os códigos fontes utilizados nessa experiência foram feitos em linguam de programação C padrão ANSI, com excessão das chamadas de sistema, que são dependentes do sistema operacional hospedeiro, o código funciona em qualquer computador que tenha o gcc instalado
O código t1.c pode ser testado no seu computador, pois não possui chamadas de sistemas diretas no código através da função system(char *c);
Os códigos podem ser baixados em:
http://danilomatias.net76.net/sistemasOperacionais/livres/linux/ubuntu/8_0_4LTS/pendrive/code/
Nenhum comentário:
Postar um comentário