filesystems - sistemas - Tamaño del bloque del sistema de archivos
sistemas de archivos sistemas operativos (2)
¿Cuál es la importancia del tamaño de bloque del sistema de archivos? Si el tamaño de mi bloque del sistema de archivos se establece en, digamos, 8K, ¿eso significa que todas las E / S de lectura / escritura se producirán en el tamaño 8K? Entonces, si mi aplicación quiere leer, por ejemplo, 16 bytes en el offset 4097, ¿se leerá un bloque 4K que comienza con el offset 4096?
¿Cómo funcionan las escrituras en este caso? Supongamos que quiero escribir digamos 64 bytes.
Normalmente, cuando tiene que lidiar con archivos en la programación, debe usar Stream abstraction. Las operaciones de E / S a través del código a menudo se leen y escriben en flujos; La lectura y escritura desde y hacia las secuencias, se puede almacenar en búfer para que se puedan leer o escribir fragmentos de archivo.
El tamaño de bloque en fs se refiere a mapear la superficie del disco; menor es el tamaño del bloque único mayor es el número de bloques (y por lo tanto los elementos en la tabla que mantienen información sobre la asignación de archivos).
Por lo tanto, los sistemas operativos pueden asignar el archivo en el disco de manera discreta según el tamaño del bloque y tener un "mapa de archivos" más pequeño. Como sé, esto no afecta la abstracción del flujo en las API del lenguaje de programación.
Tienes razón. El tamaño de bloque es la unidad de trabajo para el sistema de archivos. Cada lectura y escritura se realiza en múltiplos completos del tamaño de bloque.
El tamaño del bloque también es el tamaño más pequeño en el disco que un archivo puede tener. Si tiene un tamaño de bloque de 16 bytes, entonces un archivo con un tamaño de 16 bytes ocupa un bloque completo en el disco.
El libro "Diseño práctico del sistema de archivos" dice:
Bloque: la unidad más pequeña grabable por un disco o sistema de archivos. Todo lo que hace un sistema de archivos se compone de operaciones hechas en bloques. Un bloque del sistema de archivos es siempre del mismo tamaño o mayor (en múltiplos enteros) que el tamaño del bloque de disco.