it-swarm-pt.tech

Tamanho do bloco do sistema de arquivos

Qual é o significado do tamanho do bloco do sistema de arquivos? Se o tamanho do bloco do meu sistema de arquivos estiver definido como 8K, significa que todas as E/S de leitura/gravação ocorrerão no tamanho 8K? Portanto, se meu aplicativo quiser ler, digamos, 16 bytes no deslocamento 4097, um bloco 4K a partir do deslocamento 4096 será lido?

Como as gravações funcionam neste caso? Suponha que eu queira escrever digamos 64 bytes.

19
user880946

Você está certo. O tamanho do bloco é a unidade de trabalho para o sistema de arquivos. Toda leitura e gravação é feita em múltiplos completos do tamanho do bloco.

O tamanho do bloco também é o menor do disco que um arquivo pode ter. Se você tiver um tamanho de bloco de 16 bytes, um arquivo com tamanho de 16 bytes ocupará um bloco completo no disco.

O livro "Projeto prático do sistema de arquivos" afirma:

Bloco: a menor unidade gravável por um sistema de disco ou arquivo. Tudo o que um sistema de arquivos faz é composto de operações feitas em blocos. Um bloco de sistema de arquivos sempre tem o mesmo tamanho ou maior (em múltiplos inteiros) que o tamanho do bloco de disco.

19
dmeister

Normalmente, quando você precisa lidar com arquivos na programação, deve usar a abstração do Stream. As operações de E/S através do código são frequentemente leituras e gravações nos fluxos; leitura e gravação de e para fluxos, pode ser armazenado em buffer, de modo que partes do arquivo possam ser lidas ou gravadas.

O tamanho do bloco no fs refere-se ao mapeamento da superfície do disco; menor o tamanho do bloco único e maior o número de blocos (e, portanto, os elementos na tabela que mantêm informações sobre a alocação de arquivos).

Portanto, os SOs podem mapear o arquivo no disco discretamente com base no tamanho do bloco e ter um "mapa de arquivos" menor. Como eu sei, isso não afeta a abstração de fluxo nas APIs da linguagem de programação.

0
Andrea Colleoni