Optimización de Almacenamiento y Acceso a Datos en Sistemas de Archivos


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

Dejar un Comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *