AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Gestión de Ficheros y Directorios Transparencias basadas en el libro de referencia: Sistemas operativos. Una visión aplicada. J. Carretero, F.García, P. de Miguel, F. Pérez. McGraw Hill 2001 Curso 2005-2006 AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Contenido • • • • • Visión lógica y física del sistemas de archivos Archivos Directorios Sistemas de archivos El servidor de archivos AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Visión lógica y física • Visión lógica: – Archivos – Directorios – Sistemas de archivos y particiones • Visión física: – Bloques o bytes ubicados en dispositivos AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Función principal • El Sistema de Ficheros establece una correspondencia entre los archivos y los dispositivos lógicos. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Características para el usuario • Almacenamiento permanente (no volátil) de la información. • Información estructurada de forma lógica. • Nombres lógicos y estructurados. • No están ligados al ciclo de vida de una aplicación particular. • Abstrae los dispositivos de almacenamiento físicos. • Se accede a través de llamadas al Sistema Operativo. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Sistema de archivos • Sin sistema de archivos, el acceso a dispositivos es: – Incómodo – No seguro • El sistema de archivos es la capa software entre usuarios y dispositivos. • Objetivos: – Suministrar una visión lógica de los dispositivos – Ofrecer primitivas de acceso independientes – Garantizar mecanismos de protección AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Contenido • • • • • Visión lógica y física del sistemas de archivos Archivos Directorios Sistemas de archivos El servidor de archivos AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Archivos: visión lógica • Conjunto de información relacionada con entidad lógica propia. • Estructura de archivo: – Secuencia de bytes. – Registros (de tamaño fijo o variables). AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Concepto de archivo • Espacio lógico de variables contiguas usado para almacenar datos. • Tipos de archivos: – Datos: • Numéricos • Caracteres • Binarios – Programas: • Código fuente • Código objeto AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Atributos del archivo • Nombre: Definido por el usuario • Identificación única del archivo y del usuario: Descriptor interno del archivo, propietario y grupo. • Tipo: Formato del archivo. • Tamaño: Número de bytes que ocupa • Protección: Control de acceso al archivo. • Información temporal: De creación, modificación, etc. • Información de control: Archivo oculto, de sistema, directorio. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Representación del archivo • La estructuración de los archivos depende de cada Sistema Operativo: – Nodo-i de UNIX – Registro MFT de Windows – Entrada de MS-DOS AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Nombres de ficheros y extensiones • Característico de cada sistemas de archivos. • Longitud: Puede ser fija (MS-DOS) o variable (UNIX). • Extensiones: Pueden ser obligatorias o no. A veces se puede concatenar más de una extensión. • Algunos sistemas operativos son sensibles a mayúsculas (UNIX) y otros no (Windows). AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Estructura de un archivo • Ninguna. Se representa mediante una secuencia de palabras o bytes (UNIX). • Estructuras de registros: – Longitud fija – Longitud variable – Árbol de registros. • La mayoría de los Sistemas Operativos proporcionan una estructura de archivos simple, a fin de que cada aplicación lo interprete y gestione de la mejora manera posible. • Todos los Sistemas Operativos reconocen sus archivos ejecutables: ligado a la gestión de memoria y E/S. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Estructura de un archivo AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Estructura de un archivo ejecutable UNIX AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Archivos: visión lógica y física • Usuario: visión lógica • Sistema Operativo: visión física unida a dispositivos AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Archivos: visión física • Bloque: – Unidad de transferencia – 2n sectores – Parámetro fijo por sistema de archivos • Agrupación: – Unidad de asignación – 2p bloques – Aumenta la secuencialidad del archivo • Descripción de la estructura física: – Bloques utilizados AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Descripción física en MS-DOS (FAT) AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Descripción física en UNIX (nodo-i) AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Métodos de acceso • Acceso secuencial: lectura de los bytes en orden ascendente. – read next, write next, reset, rewind, … – Lectura: posición = posición + datos leídos – Dispositivos: cintas – ISAM: método de acceso secuencial indexado • Acceso directo. – read n, write n, goto n – n: número de bloque – Dispositivos: discos magnéticos AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Archivos: semántica de coutilización (I) • Problemas potenciales cuando varios usuarios intentan acceder al mismo archivo simultáneamente. • Semántica de coutilización: Especifica qué ocurre cuando varios procesos acceden de forma simultánea al mismo archivo y especifica el momento en el que las modificaciones que realiza un proceso pueden ser observadas por el resto. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Archivos: semántica de coutilización (II) • Semántica UNIX (POSIX): – Las escrituras son inmediatamente visibles. – Los procesos pueden compartir archivos. • Semántica de sesión: – Los cambios se hacen visibles al cerrar el archivo. – Un archivo puede tener varias imágenes. • Semántica de versiones: – Actualizaciones sobre copias o “versiones”. – Sólo son visibles cuando se consolidan (sincronización). • Semántica de archivos inmutables: – El archivo sólo se puede compartir para lectura. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Contenido • • • • • Visión lógica y física del sistemas de archivos Archivos Directorios Sistemas de archivos El servidor de archivos AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Concepto de directorio • Objeto que relaciona de forma unívoca un nombre de archivo con su descriptor interno. • Organizan y proporcionan información sobre la estructuración de los sistemas de archivos. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Directorio: visión lógica • Esquema jerárquico. • Cuando se abre un archivo, el SO busca su nombre en la estructura de directorios. • La organización jerárquica de un directorio: – Simplifica el nombrado de archivos – Proporciona una gestión de la distribución: se agrupan archivos de forma lógica AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Ejemplo: Explorador de Windows AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Estructura de directorios • Tanto la estructura del directorio como los archivos residen en disco. • La estructura de un directorio se suele implementar como la de un archivo. • Información: nombre, longitud máxima, dirección, propietario, … • ¿Qué información se debe incluir en cada entrada de directorio? Dos alternativas: – Todos los atributos del archivo referenciado – Sólo identificador del archivo. Los atributos se almacenan en el propio archivo AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Ejemplo de entradas de directorios Un solo nivel de directorio Con detalles de archivo Posibilidad de directorios jerárquicos Sin detalles de archivo AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Organización del directorio • Eficiencia: Localización rápida de archivos. • Nombrado: Conveniente y sencillo para los usuarios. – Dos archivos pueden tener el mismo nombre si están en directorios diferentes – Mismo archivo con varios nombres distintos – Nombres de longitud variable • Agrupación: Asociación lógica de los archivos según sus propiedades (p.ej. programas C, juegos, …). • Estructurado: Operaciones definidas y ocultación. • Sencillez: Alta usabilidad. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Directorio de un nivel AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Directorio de dos niveles AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Directorio con estructura de árbol AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Directorio con estructura de árbol • Los nombres absolutos contienen toda la ruta. • Los nombres relativos parten del directorio de trabajo: • Cambio de directorio: – cd /spell/mail/prog – cd prog • Crear subdirectorio: mkdir <nombre> • Ejemplo: – cd /spell/mail – mkdir count – ls /spell/mail/count AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Directorio de grafo acíclico (I) AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Directorio de grafo acíclico (II) • link: archivo con varios nombres. Control de enlaces. – Distintas entradas de directorio contienen el mismo descriptor de archivo (compartido). • Borrado de archivos: Un archivo no se puede borrar hasta que no se hayan eliminado todos los enlaces a él. • Problema grave: Existencia de bucles en el árbol. – Solución: Permitir enlaces sólo a archivos (no a subdirectorios). AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Interpretación de nombres en Linux (I) AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Interpretación de nombres en Linux (II) • Interpretar users/miguel/claves – Traer a memoria entradas de archivo con nodo-i 2 – Buscar en users. Se obtiene el nodo-i 342 – – – – – Traer a memoria entradas de archivo con nodo-i 342 Buscar en miguel. Se obtiene el nodo-i 256 Traer a memoria entradas de archivo con nodo-i 256 Buscar en claves. Se obtiene el nodo-i 758 Se lee nodo-i, con los datos del archivo • ¿Cuándo parar? – Nodo-i del archivo encontrado – No se ha encontrado y no hay más subdirectorios – El directorio no contiene la siguiente componente del nombre (p.ej. miguel). AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Jerarquía de directorios • ¿Árbol único de directorios? – Por dispositivo lógico en Windows (p.ej. C:\user\miguel\claves, J:\programas\pascal) – Para todo el sistema en UNIX (/user/miguel/claves, /programas/pascal) • En un árbol único: – Hacen falta servicios para construir la jerarquía: mount y umount. • mount /dev/hda3 /users • umount /users – Ventajas: Imagen única del sistema. Ocultan el tipo de dispositivo. – Desventajas: Complican la traducción de nombres. Problemas con enlaces físicos. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Montado de Sistemas de archivos o particiones AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Contenido • • • • • Visión lógica y física del sistemas de archivos Archivos Directorios Sistemas de archivos El servidor de archivos AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Sistemas de archivos y particiones • El sistema de archivos permite organizar la información dentro de los dispositivos de almacenamiento secundario en un formato inteligible para el SO. • Previamente a la instalación del sistema de archivos es necesario dividir los discos en particiones o volúmenes. • Partición: Porción de un disco a la que se dota de identidad propia. • El SO debe crear los sistemas de archivos dentro de esas particiones. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Sistemas de archivos y particiones AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Sistemas de archivos y particiones • Descripción de sistemas de archivos: – El sector de arranque en MS-DOS – El superbloque en UNIX • Relación sistema de archivos-dispositivo: – Típico: 1 dispositivo – N sistemas de archivo (particiones) – Grandes archivos: N dispositivos – 1 sistema de archivos – Típicamente cada dispositivo se divide en una o más particiones. – La tabla de particiones indica el principio, el tamaño y el tipo de cada partición. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Bloques y Agrupaciones • Bloque: Asociación lógica de sectores de disco. Unidad de transferencia mínima que usa el sistema de archivos. – Optimizar la eficiencia de la E/S de los dispositivos secundarios de almacenamiento. – Todos los Sistemas Operativos proporcionan un tamaño de bloque por defecto. – Tamaño de bloque definible por el usuario (habitualmente). • Agrupación: Conjunto de bloques que se gestionan como una unidad lógica de almacenamiento. – El problemas de las asignaciones (y bloques grandes) es la existencia de fragmentación interna. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Tamaño del bloque, ancho de banda y uso del disco AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Estructuras de sistemas de archivos AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Superbloque de sistema de archivos en LINUX AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Otros sistemas de archivos • • • • • Fast File System EXT2 (Extended File System) Archivos con bandas LFS (Log structured File System) Sistemas de archivos paralelos AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Estructura del FFS AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Estructura de un sistema de archivos con banda AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Contenido • • • • • Visión lógica y física del sistemas de archivos Archivos Directorios Sistemas de archivos El servidor de archivos AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Servidor de archivos • A fin de proporcionar un acceso eficiente y sencillo a los dispositivos de almacenamiento, todos los SO tienen un servidor de archivos, que permite almacenar, buscar y leer datos fácilmente. • Objetivos de diseño: – Definir la visión de usuario del sistema de E/S – Definir los algoritmos y estructuras de datos para relacionar esta visión con el sistema físico AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Estructura del servidor de archivos AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Sistema de archivos virtuales • Interfaz de llamadas de entrada/salida del sistema. Transmite al módulo de organización de archivos la información necesaria para ejecutar los servicios pedidos por los usuarios. • Servicios: – – – – Manejo de directorios Gestión de nombres Algunos servicios de seguridad Integración de distintos tipos de sistemas de archivos • Nodo virtual: Estructura de información que incluye las características mínimas comunes a todos los sistemas de archivos subyacentes y que enlaza con un descriptor de archivo de cada tipo particular. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Estructura de un nodo virtual de UNIX AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Módulo de organización de archivos • Proporciona el modelo del archivo del sistema operativo y los servicios de archivos. • Relaciona la imagen lógica del archivo con su imagen física, proporcionando algoritmos para trasladar direcciones lógicas de bloques a sus correspondientes direcciones físicas. • Gestiona el espacio de los sistemas de archivos, la asignación de bloques a archivos y el manejo de los descriptores de archivo (nodos-i en UNIX o registros de Windows NT). • Un módulo de este estilo por cada tipo de archivo soportado (UNIX, AFS, EFS, …). • Se proporcionan servicios para pseudo-archivos, como los del sistema de archivos proc. • Las llamadas de gestión de archivos y de directorios particulares de cada sistema de archivos se resuelven en el módulo de organización de archivos. Para ello, se usa la información existente en el nodo-i del archivo afectado por las operaciones. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Servidor de bloques • Se encarga de emitir los mandatos genéricos para leer y escribir bloques a los manejadores de dispositivo. • La E/S de bloques de archivo, y sus posibles optimizaciones, se lleva a cabo en este nivel del servidor de archivos. • Las operaciones se traducen a llamadas de los manejadores de cada tipo de dispositivo específico y se pasan al nivel inferior del sistema de archivos. • Esta capa oculta los distintos tipos de dispositivos, usando nombres lógicos para los mismos. P. ej., /dev/hda3 será un dispositivo tipo hard disk (hd), cuyo nombre principal es a y en el cual se trabaja sobre su partición 3. • Los mecanismos de optimización de la E/S, como la cache de bloques, se incluyen en este nivel. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Descomposición en operaciones de bloques (I) AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Descomposición en operaciones de bloques (II) AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Manejadores de dispositivos • Un manejador por cada dispositivo o clase de dispositivo. • Recibe órdenes de E/S de alto nivel (como move_to_block 234) y las traduce al formato que entiende el controlador del dispositivo. • Cada dispositivo tiene una cola de peticiones pendientes, de forma que un manejador puede atender simultáneamente a varios dispositivos del mismo tipo. • Una de las funciones principales es recibir las peticiones de E/S y colocarlas en el lugar adecuado de la cola de peticiones del dispositivo afectado – La política de inserción en cada cola puede ser diferente, dependiendo del tipo de dispositivo o de su prioridad AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Flujo de datos en el servidor de archivos AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Estructuras de datos del servidor de archivos (I) • Tabla de nodos-v: almacena en memoria la información del nodo-v existente en el disco y otra que se usa dinámicamente cuando el archivo está abierto. – Problema: si sólo hay un campo de apuntador, cada operación de un proceso afectaría a todas las demás. – Posible solución: incluir la información relativa al archivo dentro del bloque de descripción del proceso (BCP). • Tabla de archivos abiertos (tdaa) por un proceso, dentro del BCP, con sus descriptores temporales y el valor del apuntador de posición del archivo para ese proceso. – El tamaño de esta tabla define el máximo número de archivos que cada proceso puede tener abierto de forma simultánea. – El descriptor de archivo fd indica el lugar de tabla. La tdaa se rellena de forma ordenada y siempre se ocupa la primera posición libre de la tabla. – En los sistemas UNIX, cada proceso tiene tres descriptores de archivos abiertos: entrada estándar, fd = 0, salida estándar , fd = 1, error estándar, fd = 2. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Estructuras de datos del servidor de archivos (II) • Tabla intermedia nodo-i-posición: entre la tabla de archivos del BCP y la tabla de nodos-i. Dicha tabla incluye: – La entada del nodo-i del archivo abierto en la tabla de nodos-i. – El apuntador de posición correspondiente al proceso, o procesos, que usan el archivo durante esa sesión. – El modo de apertura del archivo. • Tabla de nodos-i: almacena en memoria la información del nodo-i existente en el disco y otra que se usa dinámicamente y que sólo tiene sentido cuando el archivo está abierto. – Esta tabla limita el número de máximo de archivos abiertos en el sistema de forma simultánea. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Tablas del servidor de archivos AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Correspondencia bloques-archivos • ¿Cómo asignar los bloques de disco a un archivo y cómo hacerlos corresponder con la imagen del archivo que tiene la aplicación? • Asignación de bloques contiguos. – Sencillo de implementar. El rendimiento de la E/S es muy bueno. – Si no se conoce el tamaño total del archivo cuando se crea, puede ser necesario buscar un nuevo hueco de bloques consecutivos cada vez que el archivo crece. – Fragmentación externa à compactar el disco. • Asignación de bloques discontiguos. – – – – Se asigna al archivo el primer bloque que se encuentre libre. No hay fragmentación externa del disco ni búsqueda de huecos. Los archivos pueden crecer mientras exista espacio de disco. Complica la implementación de la imagen de archivo à mapa de bloques del archivo. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) 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 AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Mecanismos indexados •Cada archivo tiene sus bloques de índice que incluyen apuntadores a los bloques de disco del archivo. - El orden lógico se consigue mediante la inserción de los apuntadores en orden creciente, a partir del primero, en los bloques de índices. - Ventaja: Basta con traer a memoria el bloque de índices donde está el apuntador a los datos para tener acceso al bloque de datos. Si un apuntador de bloque ocupa 4 bytes y el bloque es de 4 Kbytes, con un único acceso a disco tendremos 1024 apuntadores a bloques de índices. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Mapa de bloques en un nodo-i AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Gestión de espacio libre • Mapas de bits, o vectores de bits: un bit por recurso existente (descriptor de archivo, bloque o agrupación). Si el recurso está libre, el valor del bit asociado al mismo es 1, si está ocupado es 0. – Ej.: Sea un disco en el que los bloques 2, 3, 4, 8, 9 y 10 están ocupados y el resto libres, y en el que los descriptores de archivo 2, 3 y 4 están ocupados. Sus mapas de bits serán: – Fácil de implementar y sencillo de usar. Eficiente si el dispositivo no está muy lleno o muy fragmentado. • Listas de recursos libres: mantener enlazados en una lista todos los recursos disponibles (bloques o descriptores de archivos) manteniendo un apuntador al primer elemento de la lista. – Este método no es eficiente, excepto para dispositivos muy llenos y fragmentados. – Uso de agrupaciones. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Ejemplo de listas de recursos AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Incremento de prestaciones • Basados en el uso de almacenamiento intermedio de datos de E/S en memoria principal. Estos mecanismos son de dos tipos: – Discos RAM, cuyos datos están almacenados sólo en memoria. • Aceptan todas las operaciones de cualquier otro sistema de archivos y son gestionados por el usuario. • Pseudo-dispositivos para almacenamiento temporal o para operaciones auxiliares del Sistema Operativo. Contenido volátil. – Cache de datos, instaladas en secciones de memoria principal controladas por el Sistema Operativo, donde se almacenan datos para optimizar accesos posteriores. • Se basan en la existencia de proximidad espacial y temporal en las referencias a los datos de E/S. • Dos caches importantes dentro del servidor de archivos: cache de nombres y cache de bloques. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Cache de bloques (I) • Fundamento: – Proximidad espacial – Proximidad temporal – Dos clases de flujos de E/S: • Usan una sola vez cada bloque • Usan repetidamente los bloques – Acceso a disco mucho más lento que el acceso a memoria AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Cache de bloques (II) •Estructura de datos en memoria con los bloques más frecuentemente utilizados - Lecturas adelantadas - Limpieza de la cache (sync) •Principal problema: fiabilidad del sistema de archivos AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Flujo de datos con cache de datos AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Políticas de reemplazo • Algoritmo: – Comprobar si el bloque a leer está en la cache. • En caso de que no esté, se lee del dispositivo y se copia a la cache. • Si la cache está llena, es necesario hacer un hueco para el nuevo bloque reemplazando uno de los existentes: políticas de reemplazo. • Si el bloque ha sido escrito (sucio): política de escritura. • Políticas de reemplazo: FIFO, segunda oportunidad, MRU, LRU, … – La política de reemplazo más usada es la LRU. – Los bloques más usados tienden a estar en la cache, y por tanto no van al disco. La utilización estricta de esta política puede crear problemas de fiabilidad en el sistema de archivos si el computador falla. – La mayoría de los servidores de archivos distinguen entre bloque especiales y bloques de datos. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Políticas de escritura • Escritura inmediata (write-through): se escribe cada vez que se modifica el bloque. – No hay problema de fiabilidad, pero se reduce el rendimiento del sistema. • Escritura diferida (write-back): sólo se escriben los datos a disco cuando se eligen para su reemplazo por falta de espacio en la cache. – Optimiza el rendimiento, pero genera los problemas de fiabilidad descritos. • Escritura retrasada (delayed-write): se escriben a disco los bloques de datos modificados en la cache de forma periódica (30 segundos en UNIX). – – – – Compromiso entre rendimiento y fiabilidad. Reduce la extensión de los posibles daños por pérdida de datos. Los bloques especiales se escriben inmediatamente al disco. No se puede quitar un disco del sistema sin antes volcar los datos de la cache. • Escritura al cierre (write-on-close): en el momento en el que se cierra un archivo, se vuelcan al disco los bloques del mismo que tiene datos actualizados. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Montado de sistemas de archivos o particiones AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Enlaces • Permite que dos o más nombres hagan referencia al mismo archivo. • Dos tipos: – Enlace físico • El enlace sólo se elimina cuando se borran todos los enlaces. • Sólo se permite enlazar archivos (no directorios) del mismo volumen. – Enlace simbólico • El archivo se elimina cuando se elimina el enlace físico. Si permanece el enlace simbólico provoca errores al tratar de accederlo. • Se puede hacer con archivos y directorios. • Se puede hacer entre archivos de diferentes sistemas de archivos. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Enlace físico AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Enlace simbólico AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Ejemplo de montado AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) 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 AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Redundancia con paridad AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Consistencia del sistema de archivos • Dos aspectos importantes: – Comprobar que la estructura física del sistema de archivos es coherente. – Verificar que la estructura lógica del sistema de archivos es correcta. • Estructura física: se comprueba la superficie del dispositivo de almacenamiento. • Estructura lógica: – Se comprueba que el contenido del superbloque responde a las características del sistema de archivos. – Se comprueba que los mapas de bits de nodos-i se corresponden con los nodos-i ocupados en el sistema de archivos. – Se comprueba que los mapas de bits de bloques se corresponden con los bloques asignados a archivos. – Se comprueba que ningún bloque esté asignado a más de un archivo. – Se comprueba el sistema de directorios del sistema de archivos, para ver que un mismo nodo-i no está asignado a más de un directorio. AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Estado de los bloques AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Otros servicios • Actualización atómica, o indivisible: asegura a los usuarios que sus operaciones están libres de interferencia con las de otros usuarios y que la operación se realiza completamente o no tiene ningún efecto en el sistema. • Transacciones: permite ejecutar operaciones atómicas que agrupan a varias operaciones de E/S y que se ejecutarán con semántica todo o nada. • Replicación: mantiene varias copias de los datos y otros recursos del sistema. Gestión de copias: – Copia primaria – Gestión colectiva AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Gestión de la replicación