Sistemas OperativosTema 10. Sistema de archivos
1
© 1998-2008 José Miguel Santos – Alexis Quesada – Francisco Santana –Belén Esteban
Contenidos
� Interfaz del sistema de archivos
� Implementación del sistema de archivos
2
Interfaz del sistema de archivos
� Concepto de Fichero
� Métodos de acceso
� Directorios
� Protección
3
Necesidad de gestionar el almacenamiento no volátil� SISTEMA DE COMPUTACIÓN � necesitad de
almacenar y recuperar información� Característica fundamental del medio de
almacenamiento: NO VOLATILIDAD� Variedad de medios donde almacenar información:
discos magnéticos, cintas magnéticas, discos ópticos, etc...� Ventaja
� Permite elegir el medio más adecuado en función de las necesidades particulares: cantidad de información a almacenar, velocidad de acceso, fiabilidad, etc...
� Desventaja� Requiere conocer las particularidades de cada medio
4
Concepto de archivo
� Solución:� Sistema Operativo abstraiga las propiedades físicas de sus
dispositivos de almacenamiento� ¿Cómo?
� Definiendo una unidad de almacenamiento lógica, el ARCHIVO
� Definiciones� Un almacén persistente de información accesible mediante
un nombre� Es una abstracción cómoda del almacenamiento secundario
(tipo abstracto de datos):� Oculta la realidad física del almacenamiento (cintas, discos,
etc...)� Sirve para organizar la información como lo hacemos las
personas
5
Concepto de archivo
� En general un archivo es una secuencia de bits cuyo significado el creador y usuario define
� SISTEMA DE ARCHIVOS: conjunto de módulos del SO que se encargan de la gestión de la información (archivos)
6
Atributos de archivo
� Aparte de su contenido, todo archivo tiene atributos que lo describen:� Nombre (cadena de caracteres)
� Tipo de archivo (necesario en sistemas que reconocen distintos tipos)
� Ubicación en el dispositivo
� Tamaño
� Información de protección
� Fechas, horas e identificación del usuario
7
Directorios
� ¿ Qué estructura nos permite organizar y acceder a los archivos ?
� Los atributos de los archivos deben guardarse en alguna estructura: DIRECTORIO O TABLA DE CONTENIDOS
� Los directorios al igual que los archivos deben ser no volátiles � se almacenan en disco
� Deben traerse a memoria cuando se necesitan
8
Operaciones sobre archivos
� ARCHIVO: TAD = ATRIBUTOS + OPERACIONES
� OPERACIONES TIPICAS:� Creación / Destrucción
� Lectura / Escritura
� Situarse dentro del archivo (por posición o por clave)
� Cambiar atributos
9
Operaciones sobre archivos
� La mayor parte de las operaciones implican buscar la entrada en el directorio asociada al archivo
� Mejora: operaciones para abrir y cerrar archivos� Tabla de archivos abiertos� Indice, puntero o descriptor de fichero
� Operación apertura de un fichero� Entorno multiusuario ?
10
Tipos y estructuras de archivos
� La información guardada puede ser de muchos tipos� Técnica común para implementar los tipos de
archivos es incluir el tipo como parte del nombre del archivo (extensión)
� Según el tipo de archivo � estructura interna� ¿ Debe el SO reconocer y manejar la estructura
interna de diferentes tipos de archivos que pueden existir en un sistema?
� Todos los S.O. deben reconocer al menos una estructura : la de un ARCHIVO EJECUTABLE
11
Métodos de acceso� Archivo: secuencia de registros lógicos de longitud fija
� ¿De qué manera se accede a la información almacenada en los archivos?
� Algunos SO ofrecen un solo método de acceso mientras que otros ofrecen diferentes métodos de acceso
� ACCESO SECUENCIAL� Se basa en un modelo de archivo de cinta
� ACCESO DIRECTO o RELATIVO� Se basa en el modelo de archivo de disco
� ACCESO INDEXADO� Requiere de estructuras adicionales: tablas de indices
12
Directorios
� Sistema de Archivos � Miles de archivos
� ¿Cómo los organizamos?
� Particiones/Minidiscos/Volúmenes
� Directorio de dispositivo, Tabla de Contenido del Volumen osimplemente Directorio
13
Operaciones sobre directorios
� Buscar un archivo por nombre
� Crear archivos
� Borrar Archivos
� Renombrar archivos
� Listar el directorio
� Recorrer el sistema de ficheros
14
Organización de directorios
� Único nivel (espacio plano)
� Dos niveles
� Arbóreo
� Grafo acíclico (enlaces)
� Grafo general (enlaces sin restricciones)
15
Directorio de nivel único
� Estructura de directorio más sencilla: todos los archivos se guardan en el mismo directorio
� Problemas:
� Conflictos de nombres (al aumentar el numero de ficheros)
� Mala organización en sistemas multiusuario
� El tiempo de búsqueda tiende a aumentar
16
Directorio de dos niveles
� Desventaja principal de la estructura de nivel único �confusión de nombres entre diferentes usuarios
� Solución natural � un directorio por usuario
17
Directorio de dos niveles
� Se resuelve el problema de conflictos de nombres (entre diferentes usuarios)
� Problema: compartir información (algunos sistemas impiden el acceso a los directorios de otros usuarios)
� Aparece el concepto de ruta (path)
� Archivos de sistema � usuario especial
18
Directorio con estructura de árbol
� Directorio de dos niveles � árbol de dos niveles
� Generalización � árbol de altura arbitraria (subdirectorios)
19
Directorio con estructura de árbol
� Se reducen al mínimo los conflictos de nombres
� Directorio � archivo que se trata de manera especial
� Los nombres de los archivos son rutas sobre el árbol de directorios: rutas absolutas o relativas
� Aparece el concepto de “directorio de trabajo”
� Política a seguir para la eliminación de directorios
� “Caminos de búsqueda ” (facilita el hecho de que varios usuarios quieran compartir ficheros)
20
Directorios en grafo acíclico
� La estructura de árbol dificulta compartir archivos o directorios
� Se puede generalizar el esquema de directorio con estructura de árbol permitiendo a los directorios tener subdirectorios y archivos compartidos, sin ciclos
21
Directorios en grafo acíclico
� ¿Cómo se puede implementar?
� Duplicar la información (complica la consistencia)
� Nueva entrada de directorio: ENLACE o LINK (es un puntero a otro archivo o directorio)
� Estructura de directorios de grafo acíclico es más flexible que un árbol sencillo pero más compleja
� Un mismo archivo podría tener diferentes nombres de camino absoluto -> Copias de seguridad dobles???
� Eliminación � ¿ Cuándo puede liberarse o reutilizarse el espacio asignado a un archivo compartido ?
22
Directorios en grafo acíclico
23
Organización de directorios: resumen
Directorio doble nivel
Directorio estructura árbol
Directorio estructura grafo general� Problemas
� Evitar búsquedas repetidas� Liberación de espacio al eliminar
un archivo� Recolector de basuras (“Garbage
Colection”)� Consume mucho tiempo y por ello
pocas veces se intenta
Usuarios pueden crear subdirectorios
Links
� Caso particular� Directorio grafo acíclico� Requieren el uso de
algoritmos que detecten ciclos en grafos (problema: costoso en tiempo)
24
Protección de archivos
� Necesidad de mantener la seguridad de la información:
� De daños físicos (integridad)
� Copias de seguridad
� Accesos indebidos (privacidad)
� Múltiples mecanismos según
� Tipo sistema
� Seguridad requerida
25
Protección
� Muchos sistemas definen privilegios de uso: cada usuario solo puede realizar ciertas operaciones sobre un archivo (acceso controlado)
� Tipo de operaciones
� Leer, Escribir, Ejecutar, Anexar, Eliminar, Listar
� Diferentes mecanismos de protección
� Listas y grupos de acceso
� Claves
� Técnicas criptográficas
26
Implementación del sistema de archivos
� Estructura del Sistema de Archivos
� Métodos de Asignación
� Administración del espacio libre
� Implementación de directorios
27
Estructura del sistema de archivos
� SISTEMA DE ARCHIVOS � reside de manera permanente en almacenamiento secundario
� Con el objetivo de aumentar la eficiencia E/S � lastransferencias entre la memoria y el disco se efectúan en unidades de bloques (uno o más sectores)
� Discos � dos características importantes que los convierten en un medio cómodo para almacenar muchos archivos
� Leer bloque/ Modificarlo y volverlo a escribir (rescribir)
� Se puede acceder directamente a cualquier bloque de información del disco
28
Organización del sistema de archivos
� Un sistema de archivos presenta dos problemas de diseño muy distintos:
� Definir que aspecto debe presentar el sistema de archivos a los usuarios (atributos, operaciones, estructura de directorios, etc...)
� Definir los algoritmos y estructuras de datos que permiten mapear el sistema de ficheros lógico sobre los equipos físicos
29
Métodos de asignación de espacio
� OBJETIVO: asignar espacio a ficheros de modo que el espacio en disco se aproveche de forma eficaz y se pueda acceder rápidamente a los archivos
� Asignación Contigua
� Asignación Enlazada
� Asignación Indexada
30
Asignación contigua
� Cada fichero ocupa un conjunto de bloques contiguos en el disco (optimiza movimiento de las cabezas del disco)
� Entrada de directorio para cada fichero
� Dirección del bloque inicial
� Longitud del área asignada al archivo (nº bloques)
31
Asignación contigua
� Permite manejar acceso tanto secuencial como directo
� Dificultades
� Encontrar espacio para la creación de un fichero
� Algoritmos mas utilizados
� Primer ajuste (First Fit)
� Mejor ajuste (Best Fit)
� Desde un punto de vista de aprovechamiento del espacio no existen diferencias pero el primero suele ser mas rápido
� Problema ambos algoritmos: Fragmentación Externa
� Solución: Compactación (pero es una solución costosa)
32
Asignación contigua
� Otro problema importante:
� Determinar cuanto espacio se necesita para un fichero
� En unas ocasiones es sencillo (cuando el archivo es copia de otro)
� Otras es muy complicado:
� ¿Pecar por defecto?
� ¿Pecar por exceso?
� Incluso cuando se conoce la cantidad total de espacio requerido, la preasignación puede ser ineficiente
� Crecimiento lento (fragmentación interna)
33
Asignación contigua con extensiones (extents)
� Para evitar estas desventajas algunos SO utilizan un esquema de asignación contigua modificado
� Inicialmente se asigna un trozo contiguo de espacio
� Cuando se requiere mas espacio, se añade otro trozo de espacio contiguo � extensiones
� Ubicación de los bloques de un archivo: bloque inicial, nº bloques, enlace al primer bloque de la siguiente extensión
� Sigue existiendo fragmentación interna (si las extensiones son grandes) y externa (como consecuencia de la asignación y liberación de extensiones de diferentes tamaños)
34
Asignación enlazada
� Cada fichero es una lista enlazada de bloques de disco
� Entrada de directorio contiene:� Puntero al primer y último
bloque del archivo
35
Asignación enlazada: pros y contras
� Se solucionan los problemas de la asignación contigua� No se produce fragmentación externa� No es necesario declarar de antemano el tamaño del archivo
� Desventajas:� Solo eficiente para archivos de acceso secuencial
� Espacio que ocupan los punteros (un archivo requerirá algo mas de espacio del que requeriría en otro caso)
36
Asignación enlazada por clusters� Solución usual:
� Agrupar los bloques en grupos o clusters
� Esto permite:
� Correspondencia entre bloques lógicos y físicos siga siendo sencilla
� Mejora el rendimiento del disco (menos búsqueda de disco)
� Reduce el espacio necesario para la asignación de bloques y la administración de la lista de espacio libre
� Costo de esta estrategia:
� Aumento de la fragmentación interna: se desperdicia mas espacio cuando un cluster está parcialmente lleno que cuando lo esta un bloque
37
Asignación enlazada
� Confiabilidad (¿Que sucedería si un puntero se perdiera o deteriorara ?)
� Soluciones
� Listas doblemente enlazadas
� Almacenar el nombre del archivo y el numero de bloque relativo en cada bloque
� Problema: gasta extra de espacio
38
Asignación enlazada con FAT
� Variación del método de asignación enlazada
� FAT (Tabla de asignación de archivos, FileAllocation Table)
� Se aparta una sección del disco al principio de cada partición para guardar en ella la tabla
� Empleado en MS-DOS y las tarjetas de memoria flash
39
Asignación Enlazada con FAT
� Si no está en caché puede dar lugar a un número significativo de movimientos de la cabeza del disco
� La cabeza debe moverse al principio de la partición para leer la FAT y encontrar el bloque en cuestión y luego moverse a la posición del bloque en sí.
� En el peor caso ocurrirán ambos movimientos para cada uno de los bloques
� Beneficio: mejora el tiempo de acceso aleatorio ya que se puede encontrar la posición de cualquier bloque leyendo la información en la FAT.
40
Asignación indexada
� La asignación enlazada resolvía los problemas de la asignación contigua
� fragmentación externa y declaración anticipada del tamaño de los archivos
� Problema: si no se usa FAT no se puede implementar un acceso directo EFICIENTE (punteros dispersos junto con los bloques)
41
Asignación indexada (2)
� SOLUCION: Reunir todos los punteros en el mismo lugar � bloque de índices
� La i-ésima entrada del bloque índice apunta al i-ésimo bloque del archivo
42
Asignación indexada: pros y contras
� Soporta acceso directo sin sufrir fragmentación externa
� Desventaja:
� Desperdicia espacio (peor que en el caso de la asignación encadenada, p. Ej. Fichero que ocupe 1 o 2 bloques)
� ¿ Qué tamaño debería tener el bloque de índices?
43
Asignación indexada: tamaño del bloque de índices� Cada archivo debe tener un bloque índice � conviene
que el bloque sea lo mas pequeño posible (normalmente ocupa un bloque de disco)
� Pero, si es demasiado pequeño no podrá tener suficientes punteros para un archivo grande. Soluciones:
� Esquema Enlazado
� Índice multinivel
� Esquema combinado (BSD UNIX)
44
Asignación Indexada: esquema multinivel de Unix
45
Administración del espacio libre
� Vector de bits� Cada bloque se representa como un bit, que puede estar
asignado (1) o libre(0)
� Lista enlazada� El SO mantiene un apuntador al primer bloque libre. Este a su
vez apuntará al siguiente bloque libre, etc
� Lista enlazada con información de bloques libres� El primer bloque libre se comporta como un “bloque índice” de
bloques libres� Variante: incluir nº bloques consecutivos
� FAT
46
Implementación de directorios
� Lista lineal� Lista lineal de nombres de archivos con punteros a los bloques
de datos
� Sencillo de implementar (vector) pero costoso en tiempo
� Operaciones
� Creación, eliminación
47
Implementación de directorios
� Tabla de Dispersión (o Tabla Hash)
� Las entradas de directorio se guardan también en una lista lineal
� Nombre de archivo � puntero a la entrada de ese archivo en la lista lineal
� Búsqueda, Creación y Eliminación: operaciones rápidas y fáciles de implementar
48
Implementación de directorios
� Problema:
� Colisiones
� Tamaño de la tabla es fijo
� La Función de Dispersión depende del tamaño de la tabla
� Agrandar tabla implica reubicación total
� Mejora: tratar las colisiones mediante listas enlazadas en cada entrada
49
Ficheros: sumario (1)
Interfaz con el sistema de archivos
� Ficheros
� Directorios
TAD
Tipos de accesoSecuencialDirectoIndexado
DatosAtributosOperaciones � mejora: tabla de archivos abiertos
ParticionesOperacionesProtección
Organización
Único nivelDos nivelesÁrbolGrafo sin ciclos Grafo con ciclos
50
Ficheros: sumario (2)
Implementación del sistema de archivos
� Métodos de asignación
� Administración del espacio libre
� Implementación de directorios
Contigua
Enlazada
Indexada
SimpleCon extensiones
SimplePor clustersFAT
SimpleEnlazadoMúltiples nivelesCombinado
Vector de bitsLista enlazada de bloques libresLista enlazada con info. de bloques libresFAT
Tabla linealTabla de dispersión (hash)
51