Gestión de Ficheros y Directorios

Anuncio
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
Descargar