1. 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
2. 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
3. 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
4. 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.
5. 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.
6. 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
7. 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
8. 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).
9. 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
10. 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.
11. 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
12. 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).
13. 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.
14. AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)
Estructura de un archivo
15. 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
16. 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
17. 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
18. 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)
19. 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)
20. 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
21. 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.
22. 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.
23. 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
24. 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.
25. 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
26. AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)
Ejemplo: Explorador de Windows
27. 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
28. 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
29. 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.
30. AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)
Directorio de un nivel
31. AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)
Directorio de dos niveles
32. AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)
Directorio con estructura de árbol
33. 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
34. 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)
35. 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).
36. 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)
37. 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).
38. 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:usermiguelclaves,
J:programaspascal)
– 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.
39. 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
40. 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
41. 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.
42. AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)
Sistemas de archivos y particiones
43. 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.
44. 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.
45. 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
46. AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)
Estructuras de sistemas de archivos
47. 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
48. 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
49. AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)
Estructura del FFS
50. 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
51. 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
52. 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
53. AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)
Estructura del servidor de archivos
54. 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.
55. 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
56. 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.
57. 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.
58. 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)
59. 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)
60. 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
61. 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
62. 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.
63. 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.
64. AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)
Tablas del servidor de archivos
65. 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.
66. 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
67. 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.
68. 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
69. 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.
70. AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)
Ejemplo de listas de recursos
71. 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.
72. 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
73. 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
74. 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
75. 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.
76. 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.
77. 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
78. 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.
79. AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)
Enlace físico
80. AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)
Enlace simbólico
81. AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)
Ejemplo de montado
82. 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
83. AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)
Redundancia con paridad
84. 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.
85. AT3148 – Ampliación de Sistemas Operativos
A. Sánchez-Macián, J.A. Maestro, M.P. Sesmero (2004/05)
Estado de los bloques
86. 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
87. 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