Conceptos Esenciales de Sistemas Operativos: Gestión de Memoria, I/O y Estructuras de Archivos

Gestión de Archivos y Estructura de Inodes

Cálculo del Tamaño Máximo de Archivo

Valor máximo de archivo: (bytes inode / bytes que ocupa c/índice) x bytes por bloque

Solución al Límite de Tamaño Máximo

Para archivos más grandes, el inode no apunta solo a bloques de datos, sino también a bloques de punteros (indirectos, dobles, triples) que a su vez apuntan a muchos más bloques de datos, permitiendo archivos muchísimo más grandes con el mismo tamaño de inode.

Capacidad y Direccionamiento de Disco

  • Sectores totales: (sectores/pista x cilindros x pistas/cilindros)
  • Capacidad total del disco (en bytes): (sectores totales) x bytes por sector
  • Capacidad del disco (en TiB): Capacidad en bytes / 1.099.511.627.776 (1 TiB)
  • Valor máximo del Índice LBA: (sectores totales) – 1

Algoritmos de Reemplazo de Páginas

  • FIFO/FCFS (First-In, First-Out / First-Come, First-Served): Saca la página que entró hace más tiempo.
  • LRU (Least Recently Used): Saca la página menos recientemente usada.
  • Segunda Oportunidad (SC – Second Chance): Es una variante de FIFO, donde las páginas con el bit de Referencia (R=1) reciben otra oportunidad.
  • Clock: Implementación eficiente de SC en un círculo con una manecilla (puntero).
  • NRU (Not Recently Used): Clasifica las páginas por los bits R/M y elige (al azar) la peor clase para reemplazar.
  • WSClock (Working Set Clock): Combina Clock con el concepto de conjunto de trabajo; saca páginas no usadas recientemente.

Manejo de Interrupciones (IRQ)

La capa de IRQ atiende la interrupción siguiendo estos pasos:

  1. Identifica qué dispositivo la generó.
  2. Limpia la señal en el hardware.
  3. Si corresponde, mueve datos a buffers o los marca como listos.
  4. Desbloquea o despierta procesos que estaban esperando esa E/S.
  5. Finalmente, restaura el contexto para que la CPU siga ejecutando el código que estaba corriendo antes de la interrupción.

Contenido del Nodo Índice (Inode)

  • Tipo de archivo
  • Permisos
  • Usuario propietario (UID)
  • Grupo propietario (GID)
  • Marcas de tiempo
  • Tamaño del directorio
  • Cantidad de enlaces
  • Punteros a bloques de datos en disco

Modelos de Subsistema de E/S

  • Mapeada en memoria (Memory-Mapped I/O): Los registros de dispositivos se ubican en el mismo espacio de direcciones que la memoria RAM.
  • Aislada por puertos (Port-Isolated I/O): La CPU tiene un espacio de direcciones separado para puertos de E/S.
  • Híbrido: Coexisten dispositivos accesibles mediante ambos subsistemas.

Tipos de Dispositivos de E/S

Dispositivos Orientados a Bloques

HDD, SSD, USB, CD/DVD

Dispositivos Orientados a Carácter

Teclado, ratón (mouse), terminal, impresora

Bits de Referencia y Clases de Páginas (NRU)

Bits de referencia:

  • R=1 (Página leída o escrita)
  • M=1 (Página modificada/escrita)

Clasificación de páginas:

  • Clase 0: R=0, M=0 (No usada recientemente, no modificada) – Mejor candidata a reemplazo.
  • Clase 1: R=0, M=1 (No usada recientemente, modificada)
  • Clase 2: R=1, M=0 (Usada recientemente, no modificada)
  • Clase 3: R=1, M=1 (Usada recientemente, modificada) – Peor candidata a reemplazo.

Tipos de Operaciones de E/S

  • E/S Programada (Polling): La CPU consulta el registro del dispositivo en bucle (polling) hasta que esté listo, transfiriendo los datos ella misma. Ejemplo: leer puerto serie con while esperando un carácter.
  • E/S por Interrupciones: El SO inicia la operación y continúa; el dispositivo interrumpe al terminar. El ISR (Manejador de Interrupción) copia los datos y despierta los procesos. Ejemplo: placa de red al recibir un paquete.
  • E/S con DMA (Acceso Directo a Memoria): El SO programa el controlador DMA con origen, destino y tamaño. El DMA mueve datos directamente entre memoria y dispositivo, sin intervención de la CPU. Ejemplo: leer un bloque de disco a RAM.
  • Procesadores de E/S (Canales): La CPU les entrega un programa de canal; estos procesadores gestionan múltiples operaciones de dispositivos autónomamente. Ejemplo: mainframe IBM con canales controlando varios discos.

Errores Comunes en Sistemas de Archivos

  • Bloques malos (Bad Blocks): Son bloques físicos del disco que no pueden almacenar datos de forma confiable (errores permanentes). Irreparable.
  • Inconsistencias: Incoherencias entre las estructuras de datos del sistema de archivos. Ejemplo: un bloque marcado como libre en el mapa de bits, pero referenciado por un inode. Reparable.
  • Cadenas perdidas (Lost Chains): Cadenas de bloques marcadas como usadas (ocupadas), pero ninguna entrada de directorio apunta a ellas. Reparable parcialmente.
  • Cadenas cruzadas (Cross-Linked Chains): Dos archivos diferentes comparten uno o más bloques de datos (la FAT indica que ciertos bloques pertenecen a ambas cadenas). Reparable.

Diferencias Clave: FAT vs. Inodes

  • FAT (File Allocation Table): Hay una única tabla global al comienzo del disco. Cada entrada representa un bloque e indica cuál es el siguiente bloque del archivo. Para recorrer un archivo, el sistema debe seguir esa cadena dentro de la FAT, bloque a bloque (acceso secuencial a los punteros).
  • Inodes: Cada archivo tiene su propia estructura donde están los punteros a sus bloques de datos. Para acceder a un archivo, el sistema lee el inode correspondiente y desde ahí sabe directamente qué bloques de datos usar, sin depender de una única tabla gigante para todo el disco (acceso más directo).

Mapas de Bits (Bitmaps)

  • Bitmap de bloques de datos: Marca qué bloques del disco están libres u ocupados. Se usa para asignar y liberar espacio a los archivos.
  • Bitmap de inodes: Marca qué inodes están en uso y cuáles están libres. Se usa para crear nuevos archivos/directorios o liberar sus estructuras al borrarlos.

Jerarquía de Capas de E/S en Sistemas Operativos Modernos

El flujo de una operación de E/S típicamente sigue esta jerarquía:

  1. Capa de Usuario
  2. Librerías (Bibliotecas)
  3. Llamadas al Sistema
  4. Subsistema de E/S del Kernel
  5. Drivers (Controladores)
  6. Rutinas de Interrupción
  7. Controladores y Dispositivos de Hardware

Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.