View
223
Download
0
Category
Preview:
Citation preview
Sistemas OperativosSistemas OperativosTema 5. Sistemas de Tema 5. Sistemas de
archivosarchivos
1
© 1998-2014 José Miguel Santos – Alexis Quesada – Francisco Santana – Belén Esteban
ContenidosContenidos
Interfaz del sistema de archivos
Implementación del sistema de archivos
2
Interfaz del sistema de Interfaz del sistema de archivosarchivos
Concepto de archivo/fichero Métodos de acceso Directorios Protección
3
Necesidad de gestionar el Necesidad de gestionar el almacenamiento no volátilalmacenamiento 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 archivoConcepto 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 archivoConcepto 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 archivoAtributos 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
DirectoriosDirectorios
¿ 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 archivosOperaciones 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 archivosOperaciones 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 Tipos y estructuras de archivosarchivos 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 accesoMé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
DirectoriosDirectorios 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 directoriosOperaciones 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 directoriosOrganización de directorios Único nivel (espacio plano) Dos niveles Arbóreo Grafo acíclico (enlaces) Grafo general (enlaces sin restricciones)
15
Directorio de nivel únicoDirectorio 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 nivelesDirectorio 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 nivelesDirectorio 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 Directorio con estructura de árbolárbol
Directorio de dos niveles árbol de dos niveles
Generalización árbol de altura arbitraria (subdirectorios)
19
Directorio con estructura de Directorio con estructura de árbolá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íclicoDirectorios 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íclicoDirectorios 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íclicoDirectorios en grafo acíclico
23
Organización de directorios: Organización de directorios: resumenresumen
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 archivosProtecció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ónProtecció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 Implementación del sistema de archivosarchivos Estructura del Sistema de Archivos Métodos de Asignación Administración del espacio libre Implementación de directorios
27
Estructura del sistema de Estructura del sistema de archivosarchivos 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 Organización del sistema de archivosarchivos 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 Métodos de asignación de espacioespacio
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 contiguaAsignació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 contiguaAsignació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 contiguaAsignació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 Asignación contigua con extensiones (extensiones (extentsextents)) 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 enlazadaAsignació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 Asignación enlazada: pros y contrascontras
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 Asignación enlazada por clustersclusters 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 enlazadaAsignació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 FATAsignació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 FATAsignació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 indexadaAsignació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)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 Asignación indexada: pros y contrascontras 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 Asignación indexada: tamaño del bloque de índicesdel 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 Asignación Indexada: esquema multinivel de Unixmultinivel de Unix
45
Administración del espacio Administración del espacio librelibre 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
FAT46
Implementación de directorios 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 directoriosImplementació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 directoriosImplementació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)Ficheros: sumario (1)
Interfaz con el sistema de archivos
Ficheros
Directorios
TAD
Tipos de accesoSecuencialDirectoIndexado (ISAM)
DatosAtributosOperaciones ← mejora: tabla de archivos abiertos
ParticionesOperacionesProtección
Organización
Único nivelDos nivelesÁrbolGrafo sin ciclos Grafo con ciclos
50
Ficheros: sumario (2)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 libresFATTabla linealTabla de dispersión (hash)Árbol B*
51
Recommended