Cálculo de Bloques y Fragmentación en Sistemas de Archivos
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 3,49 KB
Escenario
Consideremos un fichero con 225.000 registros, que puede crecer hasta 360.000. Cada registro ocupa 141 bytes y las direcciones son de 64 bits. El disco de almacenamiento utiliza bloques de 4 KiB y agrupamiento fijo.
Cálculos
1. Factor de Bloque
El factor de bloque indica cuántos registros caben en un bloque.
Fórmula:
Factor de bloque = Tamaño del bloque / Tamaño del registro
Asignación Contigua:
Factor de bloque = 4 KiB/bloque / 141 B/registro = 29.05 -> 29 registros/bloque
Asignación Enlazada:
Se resta el tamaño del puntero al tamaño del bloque.
Factor de bloque = (4 KiB - 8 B)/bloque / 141 B/registro = 28.99 -> 28 registros/bloque
Asignación Ext2:
Factor de bloque = 4 KiB/bloque / 141 B/registro = 29.05 -> 29 registros/bloque
2. Número de Bloques de Datos
Calculamos cuántos bloques se necesitan para almacenar los registros.
Fórmula:
Nº bloques = Nº registros / Factor de bloque
Asignación Contigua:
Se utiliza el número máximo de registros.
Nº Bloques = 360.000 registros / 29 registros/bloque = 12413.8 -> 12414 bloques
Asignación Enlazada:
Se utiliza el número actual de registros.
Nº Bloques = 225.000 registros / 28 registros/bloque = 8035.7 -> 8036 bloques
Asignación Ext2:
Se utiliza el número actual de registros.
Nº Bloques = 225.000 registros / 29 registros/bloque = 7758.6 -> 7759 bloques
3. Fragmentación Interna
La fragmentación interna es el espacio desperdiciado dentro de los bloques.
Fórmula:
Fragmentación interna = Espacio asignado - Espacio ocupado
Espacio asignado = Nº bloques asignados x Tamaño del bloque
Espacio ocupado = Nº registros ocupados x Tamaño del registro
Asignación Contigua:
Fragmentación interna = 12414 bloques x 4 KiB/bloque - 225.000 registros x 141 B/registro = 50847744 B - 31725000 B = 19122744 B
Asignación Enlazada:
Fragmentación interna = 8036 bloques x (4 KiB/bloque - 8 bytes) - 225.000 registros x 141 B/registro = 32851168 B - 31725000 B = 1126168 B
Asignación Ext2:
Fragmentación interna = 7759 bloques x 4 KiB/bloque - 225.000 registros x 141 B/registro = 31780864 B - 31725000 B = 55864 B
4. Bloques de la Estructura de Control en Ext2
Calculamos los bloques necesarios para la estructura de control en Ext2.
Nº direcciones bloque control = Tamaño del bloque / Tamaño de la dirección = 4 KiB / 8 B = 512 direcciones
Para direccionar 7759 - 524 = 7235 bloques se necesitan 7235 / 512 = 14.13 -> 15 bloques de 2º nivel.
5. Operaciones de E/S en Ext2
Calculamos las operaciones de entrada/salida (E/S) para acceder a registros específicos.
Asignación Enlazada:
Bloque de un registro = Nº registro / Factor de bloque
Bloque registro 100 = 100 / 29 = 3.45 -> bloque 4
Bloque registro 1000 = 1000 / 29 = 34.48 -> bloque 35
Bloque registro 10000 = 10000 / 29 = 344.82 -> bloque 345
Ext2 permite acceso directo, por lo que las operaciones de E/S son:
- Entrada del directorio (almacenado en memoria)
- Leer el nodo-i (almacenado en memoria)
- Leer el bloque del registro 100
- Leer el bloque de direcciones (entrada indirecta simple)
- Leer el bloque del registro 1000
- Leer el bloque del registro 10000
Total: 6 operaciones de E/S