Sie sind auf Seite 1von 51

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
 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 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  Caso particular
Usuarios pueden crear  Directorio grafo acíclico
subdirectorios
 Requieren el uso de
Directorio estructura árbol algoritmos que detecten
Links 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
 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

 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
Datos
TAD Atributos
Operaciones ← mejora: tabla de archivos abiertos
 Ficheros
Secuencial
Tipos de acceso Directo
Indexado (ISAM)

Particiones
Operaciones
Protección
Único nivel
 Directorios Dos niveles
Organización Árbol
Grafo sin ciclos
Grafo con ciclos

50
Ficheros: sumario (2)
Implementación del sistema de archivos
Simple
Contigua Con extensiones

 Métodos de asignación Simple


Por clusters
Enlazada
FAT

Simple
Enlazado
Indexada Múltiples niveles
Combinado

Vector de bits
 Administración del espacio libre Lista enlazada de bloques libres
Lista enlazada con info. de bloques libres
FAT
Tabla lineal
 Implementación de directorios Tabla de dispersión (hash)
Árbol B*

51

Das könnte Ihnen auch gefallen