Sistemas operativos: una visión aplicada Capítulo 8 Gestión de Archivos y Directorios Contenido • • • • • • • • Visión del usuario del sistema de archivos Archivos Directorios Servicios de archivos Servicios de directorios Sistemas de archivos El servidor de archivos Puntos a recordar Sistemas operativos: una visión aplicada 1 © J. Carretero, F. García, P. de Miguel, F. Pérez Visión del usuario • Visión lógica: – Archivos – Directorios – Sistemas de archivos y particiones • Visión física: – Bloques o bytes ubicados en dispositivos Visión lógica Sistemas operativos: una visión aplicada Visión física 2 © J. Carretero, F. García, P. de Miguel, F. Pérez Función principal Interfaz de acceso • El SF establece una correspondencia entre los archivos y los dispositivos lógicos. Sistemas operativos: una visión aplicada SISTEMA DE FICHEROS Protección 3 © J. Carretero, F. García, P. de Miguel, F. Pérez Archivos: visión lógica • • Conjunto de información relacionada que ha sido definida por su creador Estructura de un archivo: – Secuencia o tira de bytes (UNIX, POSIX) Posición – Registros (de tamaño fijo o variable) Registro 1 C1 C2 Registro 2 C1 C2 C3 C4 C5 C3 C4 C5 Registro 3 C1 C2 C3 C4 C5 Registro 4 C1 C2 C3 C4 C5 Registro 1 C1 C2 C3 Registro 2 C1 C3 C4 C5 Registro 3 C1 C2 C4 C3 Registro 4 C1 C2 C3 C4 Registro n C1 C2 C3 C4 C5 Registro n C1 C3 Sistemas operativos: una visión aplicada 4 C5 C4 © J. Carretero, F. García, P. de Miguel, F. Pérez Concepto de archivo • Un espacio lógico de direcciones contiguas usado para almacenar datos • Tipos de archivos: – Datos: • numéricos • carácter • binarios – Programas: • código fuente • archivos objetos (imagen de carga) – Documentos Sistemas operativos: una visión aplicada 5 © J. Carretero, F. García, P. de Miguel, F. Pérez Ejemplos de representación Nombre Atrib. Size KB Agrup. FAT cabecera Atributos Tamaño Nombre Seguridad Datos Vclusters Sistemas operativos: una visión aplicada 6 © J. Carretero, F. García, P. de Miguel, F. Pérez Nombres de fichero y extensiones II • • Los directorios relacionan nombres lógicos y descriptores internos de ficheros Las extensiones son significativas para las aplicaciones (html, c, cpp, etc.) Sistemas operativos: una visión aplicada 7 © J. Carretero, F. García, P. de Miguel, F. Pérez Distintas estructuras lógicas Árbol de registros Cabecera Módulo objeto Cabecera Registros de longitud variable Archivo de biblioteca Byte o registro de longitud fija Sistemas operativos: una visión aplicada Módulo objeto 8 © J. Carretero, F. García, P. de Miguel, F. Pérez Archivos: visión lógica • Estructura de un archivo: – Archivos de estructura compleja • Archivos indexados • Archivos directos o de dispersión – Ejemplo de archivo indexado: Registro Clave Fichero indice Fichero principal – Los archivos estructurados en registros y los archivos con estructuras complejas se pueden construir como una capa sobre la visión de tira de bytes. Sistemas operativos: una visión aplicada 9 © J. Carretero, F. García, P. de Miguel, F. Pérez Estructura de archivo ejecutable LINUX Número mágico Número de secciones Cabecera primaria Tamaño segmento texto Tamaño segmento datos Cabecera de sección 1 Tipo de sección, tamaño de la sección dirección virtual Tamaño datos sin valor inicial Tamaño tabla de símbolos Tipo de sección, tamaño de la sección dirección virtual Sección 1 Código Sección 2 Datos con valor inicial Sección n Datos con valor inicial Valor inicial de registros Dirección inicial ... Cabecera de sección n Opciones Información de carga Tabla de símbolos Otra información Sistemas operativos: una visión aplicada 10 © J. Carretero, F. García, P. de Miguel, F. Pérez Archivos: visión lógica y física • • Usuario: Visión lógica. Sistema operativo: visión física ligada a dispositivos. Conjunto de bloques. Posición Visión lógica Archivo A Bloques: 13 20 1 8 3 16 19 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Bloques de la Unidad de Disco Visión física Sistemas operativos: una visión aplicada 11 © J. Carretero, F. García, P. de Miguel, F. Pérez Descripción física en UNIX (nodo-i) Tipo de Fichero y Protección Número de Nombres Propietario Grupo del Propietario Tamaño Instante de creación Instante del último acceso Instante de la última modificación Puntero a bloque de datos 0 Puntero a bloque de datos 1 Puntero a bloque de datos 9 Puntero indirecto simple Puntero indirecto doble Puntero indirecto triple Tamaño máximo del archivo: 10Sb+(Sb/4)Sb +(Sb/4)2Sb +(Sb/4)3Sb Sb el tamaño del bloque y direcciones de bloques de 4 bytes. Punteros a Bloques de Datos Punteros a Bloques de Datos Punteros a Bloques de Datos nodo-i Punteros a Bloques de Datos Punteros a Bloques de Datos Punteros a Bloques de Datos Sistemas operativos: una visión aplicada 12 © J. Carretero, F. García, P. de Miguel, F. Pérez Descripción física en MS-DOS (FAT) FAT Directorio Raíz Nombre pep_dir Atrib. dir fiche1.txt KB Agrup. 5 27 12 27 <eof> 45 45 Directorio pep_dir Nombre carta1.wp prue.zip Atrib. R KB Agrup. 24 74 16 91 58 51 <eof> 58 <eof> 74 75 75 76 76 <eof> 91 92 • FAT de 12 bits 4K agrupaciones • FAT de 16 bits 64K agrupaciones Sistemas operativos: una visión aplicada 13 © J. Carretero, F. García, P. de Miguel, F. Pérez Ejemplo: explorador de Windows Sistemas operativos: una visión aplicada 14 © J. Carretero, F. García, P. de Miguel, F. Pérez Ejemplo de entradas de directorio Nombre Tipo de archivo Contador de bloques ... Código de usuario Números de bloque archivo extendido Directorio de CP/M Nombre Tipo de archivo Número del primer Reservado Hora bloque Atributos Fecha Tamaño Directorio de MS-DOS Nodo-i: Puntero al descriptor del archivo Nombre Directorio de UNIX Sistemas operativos: una visión aplicada 15 © J. Carretero, F. García, P. de Miguel, F. Pérez Directorio de un nivel • Un único directorio para todos los usuarios • Problemas de nombrado y agrupación carta mapa.gif Sistemas operativos: una visión aplicada lista.txt ... Directorio ... ... Archivos ... 16 programa.o © J. Carretero, F. García, P. de Miguel, F. Pérez Directorio de dos niveles • • • • Un directorio por cada usuario Camino de acceso automático o manual El mismo nombre de archivo para varios usuarios Búsqueda eficiente, pero problemas de agrupación ... marivi miguel ... datos lista.c Directorio del usuario ... Directorio maestro claves ... elvira test agenda ... ... ... archivos ... mail ... lista.c ... Sistemas operativos: una visión aplicada Directorio del usuario archivos 17 ... Directorio del usuario archivos ... claves ... mio.o ... © J. Carretero, F. García, P. de Miguel, F. Pérez Directorio con estructura de árbol • Búsqueda eficiente y agrupación • Nombres relativos y absolutos -> directorio de trabajo tmp marivi miguel home ... ... Directorio raíz ... usr bin elvira include stdio.h datos lista.c test claves agenda agenda buzon claves sh correo mail rm vi mio.o Sistemas operativos: una visión aplicada 18 © J. Carretero, F. García, P. de Miguel, F. Pérez Directorio de grafo acíclico I • Tienen archivos y subdirectorios compartidos • Este concepto no existe en Windows tmp marivi miguel ... home Directorio raíz ... bin elvira ... usr include stdio.h datos lista.c test claves agenda agenda buzon claves sh correo mail rm vi claves Sistemas operativos: una visión aplicada 19 © J. Carretero, F. García, P. de Miguel, F. Pérez Interpretación de nombres en LINUX. I . .. . .. . .. claves textos Sistemas operativos: una visión aplicada 20 758 3265 © J. Carretero, F. García, P. de Miguel, F. Pérez Sistemas de archivos y particiones • Volumen: conjunto coherente de metainformación y datos. • Ejemplos de Sistemas de archivos: MS-DOS Boot Dos copias de la FAT Directorio Raíz Datos y Directorios UNIX Boot Super Bloque Mapas de bits Sistemas operativos: una visión aplicada Datos y Directorios nodos-i 21 © J. Carretero, F. García, P. de Miguel, F. Pérez Montado de Sistemas de archivos o particiones Volumen raiz (/dev/hd0) Volumen sin montar (/dev/hd1) Volumen montado / / / mount /lib /bin /usr /d1 /d2 /d3/f1 /d3 /dev/hd1 /usr /lib /bin /usr /d3/f2 /usr/d1 /usr/d3/f1 Sistemas operativos: una visión aplicada 22 /usr/d3 /usr/d3/f2 © J. Carretero, F. García, P. de Miguel, F. Pérez stat. Obtiene información sobre un archivo • Descripción: – Obtiene información sobre un archivo y la almacena en una estructura de tipo struct stat: struct stat { mode_t ino_t dev_t nlink_t uid_t gid_t off_t time_t time_t time_t }; st_mode; st_ino; st_dev; st_nlink; st_uid; st_gid; st_size; st_atime; st_mtime; st_ctime; Sistemas operativos: una visión aplicada /* /* /* /* /* /* /* /* /* /* modo del archivo */ número del archivo */ dispositivo */ número de enlaces */ UID del propietario */ GID del propietario */ número de bytes */ último acceso */ última modificacion */ último modificacion de datos */ 23 © J. Carretero, F. García, P. de Miguel, F. Pérez Tipos de particiones Partición 4 Partición 5 Partición 2 Partición 3 Sistemas operativos: una visión aplicada 24 © J. Carretero, F. García, P. de Miguel, F. Pérez Sistemas de archivos y particiones (II) • • Sistema de archivos: conjunto coherente de metainformación y datos. Ejemplos de Sistemas de archivos: MS-DOS Boot Dos copias de la FAT Directorio Raíz Datos y Directorios UNIX Boot Super Bloque Mapas de bits Sistemas operativos: una visión aplicada Datos y Directorios nodos-i 25 © J. Carretero, F. García, P. de Miguel, F. Pérez 100 % 800 75 500 50 100 uso del disco ancho de banda 50 25 0 0 256 512 1K 2K 4K 8K 16K Uso del Espacio de Disco Ancho de Banda (Kbytes/sec) Tamaño bloque, ancho banda y uso disco 32K Tamaño de Bloque Sistemas operativos: una visión aplicada 26 © J. Carretero, F. García, P. de Miguel, F. Pérez Estructuras de sistemas de archivos Sistemas operativos: una visión aplicada 27 © J. Carretero, F. García, P. de Miguel, F. Pérez Superbloque de sistemas de archivos en LINUX Sistemas operativos: una visión aplicada 28 © J. Carretero, F. García, P. de Miguel, F. Pérez Estructura del FFS Sistemas operativos: una visión aplicada 29 © J. Carretero, F. García, P. de Miguel, F. Pérez Estructura de un sistema de archivos con bandas Partición Lógica Disco 0 Disco 1 Disco 2 Disco 3 Partición del sistema Conjunto de bandas Sistemas operativos: una visión aplicada bloque 0 bloque 1 bloque 2 bloque 3 bloque 4 30 © J. Carretero, F. García, P. de Miguel, F. Pérez Estructura del servidor de archivos Proceso de Usuario 1 Proceso de Usuario 2 Proceso de Usuario 3 Proceso de Usuario n ... Nivel de usuario Nivel de sistema Sistema de Archivos Virtual Módulo de Organización de Archivos ext2 msdos Servidor de Bloques ffs ... proc Cache de Bloques Manejadores de Dispositivo ... Sistemas operativos: una visión aplicada 31 © J. Carretero, F. García, P. de Miguel, F. Pérez Estructura de un nodo virtual de UNIX nodo-v Información del archivo virtual Direcciones de las operaciones virtuales Dirección del nodo-i específico nodo-i Direcciones de las operaciones específicas de SA Tabla de funciones del SA Sistemas operativos: una visión aplicada 32 © J. Carretero, F. García, P. de Miguel, F. Pérez Descomposición en operaciones de bloques • Archivos con estructura de bytes – Escritura leer Fichero (tira de bytes) Bloques Sistemas operativos: una visión aplicada 33 © J. Carretero, F. García, P. de Miguel, F. Pérez Descomposición en operaciones de bloques (II) • Archivos de registros de tamaño fijo R1 R2 Bloque 1 R1 R3 R4 Bloque 2 R R2 R3 3 R4 Bloque 1 Sistemas operativos: una visión aplicada R5 R6 Bloque 3 R R5 6 R6 Bloque 2 34 Bloque 3 © J. Carretero, F. García, P. de Miguel, F. Pérez Flujo de datos en el S. de A. read (fd, buffer, tamaño) Usuario buffer tamaño archivo lógico (VFS) archivo lógico (FFS) 3 4 5 6 bloques del archivo Bloques lógicos (Servidor de bloques) 1340 1756 840 8322 bloques del dispositivo 1340 Manejador de disco y dispositivo 1756 bloques del disco 840 8322 Sistemas operativos: una visión aplicada 35 © J. Carretero, F. García, P. de Miguel, F. Pérez Tablas que usa el servidor de archivos Tabla de archivos Tabla de archivos abiertos. P1 abiertos. P2 fd 0 1 2 3 4 23 4563 56 3 678 fd 0 1 2 3 4 Tabla de archivos abiertos. P3 230 563 98 3 247 fd 0 1 2 3 4 2300 53 4 465 326 Nodo-i Posición 98 98 Tabla de nodos-i 98 Sistemas operativos: una visión aplicada 456 2348 Tabla intermedia de nodos-i y posiciones 36 © J. Carretero, F. García, P. de Miguel, F. Pérez Mecanismos enlazados • Listas o índices enlazados: desde cada entrada de un bloque existe un enlace al siguiente bloque del archivo. • Ejemplo: tabla FAT de Windows FAT 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 archivo A: 6 8 4 archivo B: 5 9 12 archivo C: 10 3 13 Sistemas operativos: una visión aplicada 37 2 © J. Carretero, F. García, P. de Miguel, F. Pérez Mapa de bloques en un nodo-i nodo-i Información del archivo DISCO 820 Indirecto doble 342 1623 8204 1134 ... Indirecto simple ... Direcciones de los 10 primeros bloques 10211 Bloque indirecto Indirecto triple 2046 20464 675 Sistemas operativos: una visión aplicada 38 © J. Carretero, F. García, P. de Miguel, F. Pérez Ejemplo de listas de recursos 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Bloques libres 7 Bloques libres 7,1 Sistemas operativos: una visión aplicada 11 14 16 11,1 14,1 39 18 17 16,3 (A) (B) © J. Carretero, F. García, P. de Miguel, F. Pérez Cache de bloques (II) • Estructura de datos en memoria con los bloques más frecuentemente utilizados Proceso Proceso Cache Cache Disco Disco – Lecturas adelantadas – Limpieza de la cache (sync) • Principal problema: fiabilidad del sistema de archivos. Sistemas operativos: una visión aplicada 40 © J. Carretero, F. García, P. de Miguel, F. Pérez Flujo datos con cache de bloques read (fd, buffer, tamaño) Usuario buffer tamaño archivo lógico (VFS) archivo lógico (FFS) 3 4 5 6 bloques del archivo Bloques lógicos (Servidor de bloques) 1340 1756 840 8322 bloques del dispositivo Cache de bloques (Servidor de bloques) 1340 1756 840 1756 Manejador de disco y dispositivo 8322 bloques del disco 8322 Sistemas operativos: una visión aplicada 41 © J. Carretero, F. García, P. de Miguel, F. Pérez Montado de sistemas de archivos o particiones • Oculta el nombre del dispositivo físico o partición Volumen raiz (/dev/hd0) Volumen sin montar (/dev/hd1) Volumen montado / / / mount /lib /bin /usr /d1 /d2 /d3/f1 /d3 /dev/hd1 /usr /lib /bin /usr /d3/f2 /usr/d1 • En MS-DOS c:\tmp\datos.txt Sistemas operativos: una visión aplicada /usr/d3/f1 42 /usr/d3 /usr/d3/f2 © J. Carretero, F. García, P. de Miguel, F. Pérez Enlace físico / usr / user lib prog.c pepe . .. datos.txt prog.c prueba.txt datos.txt . .. 80 100 60 datos.txt prog.c prueba.txt prog.c pepe juan 23 100 28 400 juan pepe prueba.txt . .. user lib juan pepe datos.txt usr datos2.txt juan 23 100 28 400 . .. prueba.txt datos2.txt 80 100 60 28 nodo-i 28 enlaces = 2 descripción del fichero ln /user/pepe/datos.txt /user/juan/datos2.txt Sistemas operativos: una visión aplicada 43 © J. Carretero, F. García, P. de Miguel, F. Pérez Enlace simbólico / usr / user lib pepe datos.txt prog.c pepe . .. datos.txt prog.c usr juan pepe datos.txt prueba.txt juan 23 100 28 400 . .. 80 100 prueba.txt 60 user lib prog.c pepe nodo-i 28 enlaces = 1 descripción del fichero . .. datos.txt prog.c juan prueba.txt juan 23 100 28 400 . .. 80 100 prueba.txt 60 datos2.txt 130 datos2.txt nodo-i 130 enlaces = 1 /user/pepe/ datos.txt ln -s /user/pepe/datos.txt /user/juan/datos2.txt Sistemas operativos: una visión aplicada 44 © J. Carretero, F. García, P. de Miguel, F. Pérez Ejemplo de montado / = punto de montado Punto de montado Sistemas operativos: una visión aplicada 45 © J. Carretero, F. García, P. de Miguel, F. Pérez Fiabilidad del sistema de archivos • • Fallos HW y SW pueden provocar fallos en un volumen Soluciones: – Hardware: • Controladores que tratan con sectores con fallos • Discos con información redundante (RAID) – Backups (copias de respaldo) • En discos • En cintas • Backups incrementales Sistemas operativos: una visión aplicada 46 A B B A © J. Carretero, F. García, P. de Miguel, F. Pérez Redundancia con paridad Dispositivo RAID Disco 0 Disco 1 bloque 0 bloque 1 Disco 2 Disco 3 bloque 2 paridad bloque 3 Sistemas operativos: una visión aplicada 47 © J. Carretero, F. García, P. de Miguel, F. Pérez Estado de los bloques Número de bloque Número de bloque 012 3 1 01 0 … n 0 012 3 0 10 1 … n 1 Referencias 012 3 1 00 0 … n 0 Referencias Libres 012 3 0 10 1 … n 1 Libres Referencias Libres CASO 1 CASO 2 Número de bloque Número de bloque 012 3 1 02 0 … n 0 012 3 0 10 1 … n 1 Referencias 012 3 1 00 0 … n 0 Libres 012 3 0 12 1 … n 1 CASO 3 Sistemas operativos: una visión aplicada CASO 4 48 © J. Carretero, F. García, P. de Miguel, F. Pérez Cerrojos Cerrojo C F iche ro Cerrojo C F ichero Cerrojo C Cerrojo Ex Cerrojo C F iche ro Cerrojo C • Tipos: Cerrojo Ex Cerro jo C – Compartido – Exclusivo • Importante para trabajo colaborativo Sistemas operativos: una visión aplicada 49 © J. Carretero, F. García, P. de Miguel, F. Pérez Gestión de la replicación P 2 P 1 Escribir f1 Leer f1 Leer f2 Escribir f1 GR primario Escribir f1 GR secundario GR secundario Modelo de copia primaria P 2 P 1 Escribir f1, 1 Escribir f1, 2 Leer f2 Escribir f1, 1 Gestor de Réplicas Gestor de Réplicas Escribir f1, 2 Escribir f1, 1 Gestor de Réplicas Escribir f1, 2 Modelo de gestión colectiva Sistemas operativos: una visión aplicada 50 © J. Carretero, F. García, P. de Miguel, F. Pérez