Sistemas de Archivos Implementación Módulo 11 Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Objetivos Describir los detalles locales de la implementación del sistema de archivos y estructuras de directorios Describir la implementación de sistemas de archivos remotos Discutir algoritmos de alocación de bloques y bloques libres y compromisos JRA © 2008 Sistemas Operativos – Sistemas de Archivos: Implementación 1 Estructura del Sistema de Archivos Estructura de Archivo Unidad Lógica de almacenamiento Colección de información relacionada El sistema de archivos reside en almacenamiento secundario (discos). El sistema de archivo está organizado en capas. File control block – estructura de almacenaje consistente de información sobre el archivo. Sistemas Operativos – Sistemas de Archivos: Implementación JRA © 2008 Sistema de Archivos en General Sistema de Archivos Estructur a de Archivos Manejo de Directori os Comand os de Usuario Operació n y Program Nombres as Método s de Acceso Bloques Físicos en Almacenaje Secundario Planificaci ón de Disco Manejo Libre Bloque o Funciones de manipulac ión de archivos Control de acceso Manejo de Archivos JRA © 2008 Bloques Físicos en Memoria Principal, buffers Registr os E/ S Alocaci ón de Archivo s Sistema Operativos Sistemas Operativos – Sistemas de Archivos: Implementación 2 Un Bloque de Control de Archivos Típico FCB: File Control Block Sistemas Operativos – Sistemas de Archivos: Implementación JRA © 2008 Estructuras de Archivo Bloques Físicos Registros Lógicos Fragmentación Bloques físicos Registros lógicos JRA © 2008 Sistemas Operativos – Sistemas de Archivos: Implementación 3 Estructuras del Sistema de Archivos en Memoria a) Apertura de un archivo JRA © 2008 b) Lectura de un archivo Sistemas Operativos – Sistemas de Archivos: Implementación Implementación de Directorio Lista lineal de nombres de archivos con punteros a los bloques de datos. simple de programar consume mucho tiempo en la ejecución Tabla hash – Lista lineal con estructura de datos hash. Decrece el tiempo de búsqueda en el directorio colisiones – situaciones donde dos nombres de archivos van a la misma locación Tamaño fijo JRA © 2008 Sistemas Operativos – Sistemas de Archivos: Implementación 4 Métodos de Alocación Un método de alocación se refiere a cómo los bloques de disco de un archivo son ubicados: Alocación Contigua Alocación Enlazada Alocación Indexada JRA © 2008 Sistemas Operativos – Sistemas de Archivos: Implementación Alocación Contigua Cada archivo ocupa un conjunto de bloques contiguos en el disco. Simple – solo se necesita la locación de comienzo (block #) y la longitud (número del bloques). Acceso aleatorio. Desperdicio de espacio (problema de alocación dinámica). Los archivos no pueden crecer. Mapeo de lógico a físico. Q Dirección Lógica/512 R Bloque a ser accedido = Q + dirección de comienzo Desplazamiento dentro del bloque = R JRA © 2008 Sistemas Operativos – Sistemas de Archivos: Implementación 5 Alocación Contigua JRA © 2008 Sistemas Operativos – Sistemas de Archivos: Implementación Alocación Enlazada Cada archivo es una lista enlazada de bloques de disco: los bloques pueden estar en cualquier lugar del disco. JRA © 2008 Sistemas Operativos – Sistemas de Archivos: Implementación 6 Alocación Enlazada El archivo es definido por primero y último Resuelve el problema de almacenaje - cualquier bloque libre servirá No soporta (eficientemente) el acceso directo Simple – necesita solo la dirección inicial Sistema de administración del espacio libre – no malgasta espacio No hay acceso aleatorio Sistemas Operativos – Sistemas de Archivos: Implementación JRA © 2008 Alocación Enlazada (Cont.) File-Allocation Table (FAT) – alocación de espacio de disco usado en MS-DOS y OS/2. entrada de directorio test nombre ... ... 0 217 bloque inicial 217 618 339 eof 618 339 N° de bloques del disco - 1 JRA © 2008 Sistemas Operativos – Sistemas de Archivos: Implementación 7 Alocación Indexada Pone todos los punteros juntos en bloque índice. Vista lógica. Tabla de índices JRA © 2008 Sistemas Operativos – Sistemas de Archivos: Implementación Ejemplo de Alocación Indexada JRA © 2008 Sistemas Operativos – Sistemas de Archivos: Implementación 8 Alocación Indexada – Mapeo (Cont.) índice externo tabla de índices JRA © 2008 archivo Sistemas Operativos – Sistemas de Archivos: Implementación Esquema Combinado: UNIX (4K bytes por bloque) JRA © 2008 Sistemas Operativos – Sistemas de Archivos: Implementación 9 Administración de Espacio Libre Vector de Bits – bit map (n bloques) 0 1 2 n-1 … bit[i] = 1 bloque[i] libre 0 bloque[i] ocupado Cálculo del número de bloque (número de bits por palabra) * (número de palabras con valor 0) + offset del primer bit 1 JRA © 2008 Sistemas Operativos – Sistemas de Archivos: Implementación Administración de Espacio Libre (Cont.) El bit map requiere espacio extra. Ejemplo: tamaño bloque = 212 bytes tamaño disco = 230 bytes (1 gigabyte) n = 230/212 = 218 bits (o 32K bytes) Fácil de obtener archivos contiguos Lista enlazada (lista de libres) No es fácil obtener espacio contiguo No malgasta espacio Agrupamiento Cuenta JRA © 2008 Sistemas Operativos – Sistemas de Archivos: Implementación 10 Administración de Espacio Libre (Cont.) Necesidad de proteger: Puntero a la lista de libres Bit map Debe mantenerse en disco Copia en memoria y disco puede diferir. No se puede permitir para bloque[i] tener una situación donde bit[i] = 1 en memoria y bit[i] = 0 en el disco. Solución: Poner bit[i] = 1 en el disco. Alocar el bloque[i] Poner bit[i] = 1 en memoria JRA © 2008 Sistemas Operativos – Sistemas de Archivos: Implementación Administración de Espacio Libre (Cont.) JRA © 2008 Sistemas Operativos – Sistemas de Archivos: Implementación 11 Eficiencia y Desempeño La eficiencia depende de: alocacion en el disco y algoritmos de directorio tipos de datos mantenidos en la entrada de directorio del archivos Desempeño caché de disco – sección separada de memoria principal para bloques frecuentemente usados free-behind y read-ahead – técnicas para optimizar el acceso secuencial mejora del desempeño de la PC dedicando una sección de la memoria como disco virtual, o disco RAM. JRA © 2008 Sistemas Operativos – Sistemas de Archivos: Implementación Distintas Locaciones del Caché de Disco JRA © 2008 Sistemas Operativos – Sistemas de Archivos: Implementación 12 Recuperación Verificador de Consistencia – compara datos en la estructura de directorio con bloques de datos en el disco, y trata de reparar inconsistencias. Uso de programas de sistema para respaldar (back up) datos del disco a otro dispositivo de almacenaje (floppy disk, cinta magnética, optical, etc). Se recuperan archivos perdidos o disco por restauración de datos del backup. JRA © 2008 Sistemas Operativos – Sistemas de Archivos: Implementación El Sistema de Archivos de Red de Sun (NFS) Es una implementación y una especificación de un sistema de software para acceder a archivos remotos a través de LANs (o WANs). La implementación es parte de los sistema operativos Solaris y SunOS que corre sobre estaciones de trabajo Sun usando un protocolo no confiable datagrama (protocolo UDP/IP) y Ethernet. JRA © 2008 Sistemas Operativos – Sistemas de Archivos: Implementación 13 Vista Esquemática de la Arquitectura NFS JRA © 2008 Sistemas Operativos – Sistemas de Archivos: Implementación Fin Módulo 11 Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 14