Archivos

87
Gestión de Ficheros y Directorios AT3148 – Ampliación de Sistemas Operativos A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05) Curso 2005-2006 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

Transcript of Archivos

Page 1: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Gestión de Ficheros y Directorios

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Curso 2005-2006

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

Page 2: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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

Page 3: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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

Page 4: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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.

Page 5: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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.

Page 6: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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

Page 7: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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

Page 8: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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).

Page 9: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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

Page 10: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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.

Page 11: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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

Page 12: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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).

Page 13: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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.

Page 14: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Estructura de un archivo

Page 15: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Estructura de un archivo ejecutable UNIX

Page 16: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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

Page 17: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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

Page 18: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Descripción física en MS-DOS (FAT)

Page 19: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Descripción física en UNIX (nodo-i)

Page 20: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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

Page 21: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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.

Page 22: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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.

Page 23: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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

Page 24: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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.

Page 25: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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

Page 26: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Ejemplo: Explorador de Windows

Page 27: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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

Page 28: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Ejemplo de entradas de directorios

Sin detalles de archivo

Con detalles de archivoUn solo nivel de directorio

Posibilidad de directorios jerárquicos

Page 29: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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.

Page 30: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Directorio de un nivel

Page 31: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Directorio de dos niveles

Page 32: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Directorio con estructura de árbol

Page 33: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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

Page 34: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Directorio de grafo acíclico (I)

Page 35: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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).

Page 36: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Interpretación de nombres en Linux (I)

Page 37: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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).

Page 38: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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.

Page 39: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Montado de Sistemas de archivos o particiones

Page 40: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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

Page 41: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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.

Page 42: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Sistemas de archivos y particiones

Page 43: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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.

Page 44: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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.

Page 45: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Tamaño del bloque, ancho de banda y uso del disco

Page 46: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Estructuras de sistemas de archivos

Page 47: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Superbloque de sistema de archivos en LINUX

Page 48: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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

Page 49: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Estructura del FFS

Page 50: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Estructura de un sistema de archivos con banda

Page 51: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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

Page 52: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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

Page 53: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Estructura del servidor de archivos

Page 54: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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.

Page 55: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Estructura de un nodo virtual de UNIX

Page 56: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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.

Page 57: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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.

Page 58: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Descomposición en operaciones de bloques (I)

Page 59: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Descomposición en operaciones de bloques (II)

Page 60: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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

Page 61: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Flujo de datos en el servidor de archivos

Page 62: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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 deposició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.

Page 63: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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.

Page 64: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Tablas del servidor de archivos

Page 65: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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.

Page 66: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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

Page 67: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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.

Page 68: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Mapa de bloques en un nodo-i

Page 69: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

• 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.

Gestión de espacio libre

Page 70: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Ejemplo de listas de recursos

Page 71: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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 denombres y cache de bloques.

Page 72: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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

Page 73: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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

Page 74: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Flujo de datos con cache de datos

Page 75: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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.

Page 76: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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.

Page 77: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Montado de sistemas de archivos o particiones

Page 78: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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.

Page 79: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Enlace físico

Page 80: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Enlace simbólico

Page 81: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Ejemplo de montado

Page 82: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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

Page 83: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Redundancia con paridad

Page 84: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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.

Page 85: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Estado de los bloques

Page 86: Archivos

AT3148 – Ampliación de Sistemas OperativosA. 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

Page 87: Archivos

AT3148 – Ampliación de Sistemas OperativosA. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)

Gestión de la replicación