Cálculo del Factor de Bloque y Número de Bloques de Datos
Factor de Bloque
El factor de bloque determina cuántos registros caben en un bloque de datos. Se calcula dividiendo el tamaño del bloque por el tamaño del registro.
Fórmula del Factor de Bloque:
Factor bloque = Tamaño bloque / Tamaño registro
Cálculos y Resultados:
- Asignación Contigua:
- Factor bloque = 4 KiB / 141 B = 29,05 → 29 registros/bloque
- Asignación Enlazada:
- Se debe descontar el tamaño del puntero del bloque.
- Factor bloque = (4 KiB – 8 B) / 141 B = 28,99 → 28 registros/bloque
- Asignación Indexada:
- Factor bloque = 4 KiB / 141 B = 29,05 → 29 registros/bloque
Número de Bloques de Datos
El número de bloques de datos necesarios se calcula dividiendo el número total de registros por el factor de bloque.
Fórmula del Número de Bloques:
Número de bloques = Número de registros / Factor bloque
Cálculos y Resultados:
- Asignación Contigua (con número máximo de registros):
- Número de bloques = 150.000 registros / 29 reg/bloque = 5.172,4 → 5.173 bloques
- Asignación Enlazada (con registros actuales):
- Número de bloques = 120.000 registros / 28 reg/bloque = 4.285,7 → 4.286 bloques
- Asignación Indexada (con registros actuales):
- Número de bloques = 120.000 registros / 29 reg/bloque = 4.137,9 → 4.138 bloques
Análisis de Fragmentación Interna
Fragmentación Interna de Bloques de Datos
La fragmentación interna ocurre cuando el espacio asignado a un bloque es mayor que el espacio realmente ocupado por los datos.
Fórmula de Fragmentación Interna:
Fragmentación interna = Espacio asignado - Espacio ocupado
Donde:
Espacio asignado = Número de bloques asignados × Tamaño bloque
Espacio ocupado = Número de registros × Tamaño registro
Cálculos y Resultados:
- Asignación Contigua:
- Fragmentación interna = 5.173 bloques × 4 KiB/bloque – 120.000 reg × 141 B/reg = 4.268.608 B
- Asignación Enlazada:
- Fragmentación interna = 4.286 bloques × (4 KiB/bloque – 8 bytes) – 120.000 reg × 141 B/reg = 601.168 B
- Asignación Indexada:
- Fragmentación interna = 4.138 bloques × 4 KiB/bloque – 120.000 reg × 141 B/reg = 29.248 B
Gestión de Bloques Índice y Acceso a Datos
Bloques Índice en Asignación Indexada y Ext2
Se determina el número de bloques índice necesarios para controlar los bloques de datos en diferentes esquemas de asignación.
Asignación Indexada con Bloques Índice Enlazados:
- Capacidad de un bloque índice:
- Capacidad = Tamaño bloque / Tamaño dirección = 4.096 B / 8 B/dirección = 512 direcciones
- Dado que la última dirección apunta al siguiente bloque índice, se almacenan 511 direcciones de bloques de datos por bloque índice.
- Número de bloques índice:
- Número de bloques índice = Número de bloques datos / Capacidad bloque índice
- Número de bloques índice = 4.138 bloques datos / 511 direcciones/bloque = 8,1 → 9 bloques de direcciones
Asignación Ext2:
- El nodo-i almacena 12 punteros directos a bloques de datos.
- Para ficheros con más de 12 bloques, se usan punteros indirectos (simple, doble, triple).
- Capacidad de un bloque de direcciones:
- Capacidad = Tamaño bloque / Tamaño dirección = 4.096 B / 8 B/dirección = 512 direcciones
- Cálculo de bloques adicionales:
- Direcciones adicionales necesarias = 4.138 direcciones – 12 direcciones = 4.126 direcciones
- Se utiliza 1 bloque indirecto simple (512 direcciones).
- Bloques de segundo nivel necesarios = (4.126 – 512) / 512 = 7,1 → 8 bloques de segundo nivel.
- Total de bloques índice = nodo-i + 1 bloque indirecto simple + 8 bloques de segundo nivel = 10 bloques de direcciones (además del nodo-i).
Operaciones de E/S en Sistema de Archivos Ext2
Se calcula el número de operaciones de Entrada/Salida (E/S) necesarias para acceder a registros específicos en un sistema de archivos Ext2.
Cálculo de Bloque de Registro:
Bloque de un registro = Número de Registro / Factor bloque
- Registro 30.000: 30.000 / 29 = 1.034,5 → bloque 1.035
- Registro 200: 200 / 29 = 6,9 → bloque 7
- Registro 1.000: 1.000 / 29 = 34,5 → bloque 35
Explicación de Operaciones de E/S:
El acceso a los registros implica las siguientes operaciones de E/S, asumiendo que la entrada del directorio y el nodo-i se almacenan en memoria tras la primera lectura:
- 1 operación E/S: Lectura de la entrada del directorio (almacenada en memoria).
- 1 operación E/S: Lectura del nodo-i (almacenado en memoria).
- 1 operación E/S: Lectura del bloque de direcciones apuntado por el puntero indirecto simple (para obtener la dirección del bloque 35).
- 1 operación E/S: Lectura del bloque de direcciones apuntado por el puntero indirecto doble (para obtener la dirección del bloque 1.035).
- 1 operación E/S: Lectura del primer bloque apuntado por el bloque indirecto doble (para obtener la dirección del bloque 1.035).
- 1 operación E/S: Lectura del bloque de datos que contiene el registro 30.000 (bloque 1.035).
- 1 operación E/S: Lectura del bloque de datos que contiene el registro 200 (bloque 7).
- 1 operación E/S: Lectura del bloque de datos que contiene el registro 1.000 (bloque 35).
Total de operaciones de E/S: 8