Sistemas Operativos
Tema 5. Sistemas de archivos
© 1998-2014 José Miguel Santos – Alexis Quesada – Francisco Santana –
Belén Esteban
1
Contenidos

Interfaz del sistema de archivos

Implementación del sistema de archivos
2
Interfaz del sistema de archivos

Concepto de archivo/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


Según el tipo de archivo  estructura interna


Técnica común para implementar los tipos de
archivos es incluir el tipo como parte del nombre del
archivo (extensión)
¿ 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?


ACCESO SECUENCIAL


Se basa en un modelo de archivo de cinta
ACCESO DIRECTO o RELATIVO


Algunos SO ofrecen un solo método de acceso mientras que otros
ofrecen diferentes métodos de acceso
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 o
simplemente 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
Usuarios pueden crear
subdirectorios
Directorio estructura árbol
Links

Caso particular


Directorio grafo acíclico
Requieren el uso de
algoritmos que detecten
ciclos en grafos (problema:
costoso en tiempo)
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
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  las
transferencias 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 permiten
fragmentar el archivo (NTFS, XFS…):




Inicialmente se asigna un trozo contiguo de espacio
Cuando se requiere más 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, File
Allocation 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


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



Cada bloque se representa como un bit, que puede estar
asignado (1) o libre(0)
El primer bloque libre se comporta como un “bloque índice” de
bloques libres
Variante: incluir nº bloques consecutivos
FAT
46
Implementación de directorios

Implementación básica: lista lineal

Lista de nombres de archivos con punteros a los bloques de
datos, más otros atributos.

Sencillo de implementar (vector), pero rendimiento pobre en
directorios con muchas entradas.
47
Implementación de directorios

Los sistemas modernos usan estructuras
más eficientes:



Tabla hash
Árboles B* (NTFS, ext4…)
Los árboles B* funcionan muy bien en
directorios con muchas entradas, sin
penalizar demasiado el coste de
almacenamiento de la estructura y el código
adicional.
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
TAD

Ficheros
Datos
Atributos
Operaciones ← mejora: tabla de archivos abiertos
Tipos de acceso
Secuencial
Directo
Indexado (ISAM)
Particiones
Operaciones
Protección
 Directorios
Organización
Único nivel
Dos niveles
Árbol
Grafo sin ciclos
Grafo con ciclos
50
Ficheros: sumario (2)
Implementación del sistema de archivos
 Métodos de asignación
Contigua
Simple
Con extensiones
Enlazada
Simple
Por clusters
FAT
Indexada
Simple
Enlazado
Múltiples niveles
Combinado
 Administración del espacio libre
 Implementación de directorios
Vector de bits
Lista enlazada de bloques libres
Lista enlazada con info. de bloques libres
FAT
Tabla lineal
Tabla de dispersión (hash)
Árbol B*
51
Descargar

FSO-05-Sistemas de archivos - Servidor de Información de