RedNotes
Toggle sidebar
Iniciar sesión
Sistemas Operativos/Sistemas de archivos
Inicia sesión para editar

Los archivos son la abstracción que el Sistemas Operativos ofrece para el almacenamiento persistente, igual que los Sistemas Operativos/Procesos abstraen la CPU y los espacios de direcciones la memoria. Requisitos: guardar mucha información, que sobreviva al proceso, y que varios procesos accedan a ella a la vez.

Archivos

  • Nombres y extensiones (en UNIX sólo convenciones).
  • Estructura: secuencia de bytes (UNIX, Windows), de registros, o árbol.
  • Tipos: regulares, directorios, especiales de caracteres y de bloques.
  • Acceso: secuencial o aleatorio.
  • Atributos (metadatos): protección, propietario, tamaño, fechas...
  • Operaciones: create, delete, open, close, read, write, append, seek, get attributes, rename — ver Sistemas Operativos/Llamadas al sistema.

Directorios

  • Un solo nivel → jerárquicos (árbol).
  • Rutas absolutas (/usr/ast/mailbox) y relativas al directorio de trabajo; . y ...

Implementación

Distribución en disco

El disco se divide en particiones; el sector 0 contiene el MBR. Cada partición suele tener: bloque de arranque, superbloque, gestión de espacio libre, i-nodos, directorio raíz y archivos.

Asignación de bloques

Método Ventajas Desventajas
Contigua Simple, lectura secuencial excelente Fragmentación externa; hay que conocer el tamaño final (bien para CD/DVD)
Lista ligada Sin fragmentación externa Acceso aleatorio muy lento
Lista ligada con tabla (FAT) Acceso aleatorio rápido con la tabla en memoria La tabla completa en memoria no escala
i-nodos Sólo en memoria los i-nodos de archivos abiertos Bloques indirectos para archivos grandes

El i-nodo contiene los atributos y las direcciones de los bloques, más punteros a bloques indirectos simples, dobles y triples.

Directorios

Una entrada de directorio asocia un nombre con un i-nodo (UNIX) o contiene los atributos directamente (FAT). Para nombres largos se usan entradas de longitud variable o un heap; para directorios grandes, tablas hash.

Archivos compartidos

  • Enlaces duros: varias entradas apuntan al mismo i-nodo (contador de enlaces).
  • Enlaces simbólicos: un archivo que contiene la ruta de otro.

Fiabilidad y rendimiento

  • Sistemas con bitácora (journaling): registran lo que se va a hacer antes de hacerlo; las operaciones deben ser idempotentes. Ejemplos: NTFS, ext4.
  • Sistemas estructurados como registro (LFS): todo el disco como un registro secuencial.
  • Sistemas de archivos virtuales (VFS): una capa común que integra varios sistemas de archivos.
  • Caché de bloques (buffer cache), lectura anticipada y reducción del movimiento del brazo.
  • Respaldos: físicos vs lógicos, completos vs incrementales.
  • Consistencia: fsck verifica bloques e i-nodos tras una caída.

Ejemplos

MS-DOS/FAT-32, UNIX V7, ext2/ext3/ext4 (Linux), NTFS (Windows), ISO 9660 (CD-ROM).

#sistemas-operativos #tanenbaum #archivos