Sistemas de Archivos
-
Upload
josue-martinez-e -
Category
Documents
-
view
16 -
download
0
description
Transcript of Sistemas de Archivos
Sistema de Archivos: Interfaz
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
Concepto de Archivo Un almacén persistente de información accesible mediante
un nombreEspacio de direcciones lógicas contiguasSirve para organizar la información como lo hacemos las
personas
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)
Atributos de archivo:
Aparte de su contenido, todo archivo tiene atributos quelo 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
Estructura de Archivo• Ninguna – secuencia de palabras, bytes• Estructura de registros simple
• Líneas• Longitud fija• Longitud variable
• Estructuras Complejas• Documento con formato• Archivo de carga reubicable
• Se pueden simular estos dos últimos puntos con el primer método por la inserción de caracteres de control apropiados
• Lo decide:• El sistema operativo• El programa
Operaciones sobre Archivos
• creación• escritura• lectura• reposición puntero corriente• borrado• truncado• open(Fi) – busca la estructura de directorio en el disco para
la entrada Fi, y mueve el contenido de la entrada a la memoria.
• close (Fi) – mueve el contenido de la entrada Fi en la memoria a la estructura del directorio en el disco.
Archivos Abiertos• Son necesarios varios datos para administrar los archivos
abiertos:• Puntero corriente del archivo: punteros a la última
locación read/write, hay un puntero por proceso que tiene el archivo abierto.
• Cuenta de archivo abierto: cuenta el número de veces que el archivo es abierto, permite remover datos de la tabla de archivos abiertos cuando el último proceso lo cierra.
• Locación en el disco del archivo: información de acceso a datos en el caché.
• Derechos de acceso: información del modo de acceso por proceso.
Locking de Archivos Abiertos Provisto por algunos sistemas operativos y sistemas de
archivos
Media en el acceso al archivo
Mandatorio flexible:
Mandatorio – el acceso es rechazado dependiendo de los locks que se tienen y requeridos
Flexible – los procesos verifican el estado de los locks y decide que hacer
Tipos de Archivo – nombre, extension
Métodos de AccesosAcceso Secuencial
read nextwrite nextresetno read after last write (rewrite)
Acceso Directoread nwrite nposition to n
read nextwrite nextrewrite n
n = número relativo de bloqueAcceso IndexadoRequiere de estructuras adicionales: tablas de indices
Archivo de Acceso Secuencial
Simulación del Acceso Secuencial en unArchivo de Acceso Directo
Ejemplo de Archivo Indexado y Relativo
Estructura de Directorio
Una Organización Típica de un sistema de Archivos
Información en un Directorio de Dispositivo
NombreTipoDirección Longitud corrienteMáxima longitud Fecha del último acceso Fecha de la última actualización (para vuelco) ID del dueño Información de protección
Operaciones sobre un Directorio
Búsqueda de un archivo
Creación de un archivo
Borrado de un archivo
Listado de un directorio
Renombrado de un archivo
Atravesar un sistema de archivos
Organice el Directorio (Logicamente) para Obtener:
• Eficiencia – localizar un archivo rapidamente.
• Nombres – conveniente para los usuarios.
• Dos usuarios pueden tener el mismo nombre para
diferentes archivos.
• El mismo archivo puede tener varios nombres diferentes.
• Agrupamiento – agrupamiento lógico de archivos por
• propiedades, (p.e., todos los programas Pascal, todos
• los juegos, …)
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
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
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 a usuario especial
Estructura Arbórea de Directorios
Generalización árbol de altura arbitraria (subdirectorios)
Estructura Arbórea de Directorios (Cont.)
Búsqueda eficiente
Se reducen al mínimo los conflictos de nombres
Capacidad de agrupamiento
Directorio corriente (directorio de trabajo)
cd /spell/mail/prog
type list
Estructura Arbórea de Directorios (Cont.) Camino de nombres absoluto o relativo La creación de un nuevo archivo se hace en el directorio
corriente. Borrado de un archivo
rm <nombre-arch> La creación de un nuevo subdirectorio se hace en el
directorio corriente.
mkdir <nombre-dir>Ejemplo: si el directorio corriente es /spell/mail
mkdir count⇒ /spell/mail/count Borrar “mail” ⇒ borrar el subárbol entero cuya raíz es “mail”.
Grafo Acíclico de Directorios
Grafo Acíclico de Directorios (Cont.) Dos nombres diferentes (alias) Si dict borra list⇒ quedan punteros solitarios.
Soluciones: Punteros hacia atrás, así se pueden borrar todos los
punteros.Los registros de tamaño variable son un problema. Punteros hacia atrás usando una organización
“cadena margarita”. Contador de entradas al archivo. Nueva entrada en el directorio Link – Otro nombre (puntero) a un archivo existente Resuelva el link – siga el puntero hasta localizar el
archivo
Grafo Acíclico de Directorios (Cont.)
Grafo General de Directorio
Grafo General de Directorio (Cont.) ¿Cómo se garantiza que no haya ciclos?
Permita enlaces (links) a archivos y no a sudirectorios. “Garbage collection”.Cada vez que se agrega un nuevo enlace (link) se usa un
algoritmo de detección de ciclos para determinar si estábien.
Montaje de Sistema de Archivos (Mounting) Un sistema de archivos debe ser montado antes de que pueda
ser accedido. Un sistema de archivos sin montar (siguientes slides) es
montado en un punto de montaje (mount point).
Archivos Compartidos
Es deseable compartir archivos en un sistema
multiusuario.
La acción de compartir debe ser hecha por medio de un
esquema de protección.
En sistemas distribuidos los archivos pueden ser
compartidos a través de la red.
Network File System (NFS) es un método
Archivos Compartidos – Múltiples Usuarios
n Los User IDs identifyican usuarios, admiten permisos yprotección por usuarios
n Los Group IDs admite agrupar usuarios en grupos,permitiendo asignar al mismo derechos de acceso
Archivos Compartidos – Modos de Fallas
Los sistemas de archivos remotos agregan nuevos modosde fallas, debido a las fallas de las redes, fallas en losservidores, etc.
La recuperación de fallas puede involucrar información deestado acerca del status de cada requerimiento remoto.
Protocolos sin estados como NFS incluyen toda lainformación en cada petición, permitiendo fácilrecuperación pero menos seguridad
Archivos Compartidos – Semántica de ConsistenciaLa semántica de consistencia especifica como múltiples usuariospueden acceder a un archivo compartido simultaneamente Similar a los algoritmos de sincronización
Tienden a ser menos complejos debido a las E/S a disco la latencia de la red (sistemas de archivos remotos)
Andrew File System (AFS) implementa una semántica muy compleja para compartir archivos
El sistema de archivos Unix (UFS) implementa: Las escrituras sobre un archivo abierto son visibles
inmediatamente a los otros usuarios que comparten el mismo archivo.
El puntero a archivos compartidos permite que múltiples usuarios lean y escriban concurrentemente
AFS tiene una semántica de sesión Las escrituras son solo visibles solo después que la
sesión termina
Protección de ArchivosNecesidad de mantener la seguridad de lainformación:
• De daños físicos (integridad)• Copias de seguridad
• Accesos indebidos (privacidad)• Múltiples mecanismos según
• Tipo sistema• Seguridad requerida
Protección de ArchivosMuchos sistemas definen privilegios de uso:cada usuario solo puede realizar ciertasoperaciones sobre un archivo (accesocontrolado)• Tipo de operaciones
• Leer, Escribir, Ejecutar, Anexar, Eliminar,Listar
• Diferentes mecanismos de protección• Listas y grupos de acceso• Claves• Técnicas criptográficas
Listas de Acceso y Grupos
Un ejemplo de un Listado de Directorio en UNIX
Implementación del sistema deArchivos
• Estructura del Sistema de Archivos
• Métodos de Asignación
• Administración del espacio libre
• Implementación de directorios
Estructura del sistema de archivos
• SISTEMA DE ARCHIVOS a reside de manera permanente enalmacenamiento secundario
• Con el objetivo de aumentar la eficiencia E/S lastransferencias entre la memoria y el disco se efectúan enunidades de bloques (uno o más sectores)
• Discos dos características importantes que los conviertenen 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
Organización del sistema dearchivos
• Un sistema de archivos presenta dos problemas de diseñomuy distintos:
• Definir que aspecto debe presentar el sistema dearchivos a los usuarios (atributos, operaciones,estructura de directorios, etc...)
• Definir los algoritmos y estructuras de datos quepermiten mapear el sistema de ficheros lógico sobre losequipos físicos
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
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)
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 existendiferencias pero el primero suele ser masrápido
• Problema ambos algoritmos: FragmentaciónExterna
• Solución: Compactación (pero es una solucióncostosa)
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)
Asignación contigua con extensiones (extents)
• Para evitar estas desventajas algunos SO utilizan unesquema 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óny liberación de extensiones de diferentes tamaños)
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
Asignación enlazada: pros yContras
• 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)
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
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
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
Asignación Enlazada con FAT
Si no está en caché puede dar lugar a un número significativode movimientos de la cabeza del disco La cabeza debe moverse al principio de la partición para leer laFAT y encontrar el bloque en cuestión y luego moverse a laposición del bloque en sí. En el peor caso ocurrirán ambos movimientos para cada uno delos bloquesBeneficio: mejora el tiempo de acceso aleatorio ya que se puedeencontrar la posición de cualquier bloque leyendo la informaciónen la FAT.
Asignación indexada
La asignación enlazada resolvía los problemas de laasignación contigua
- fragmentación externa y declaración anticipadadel tamaño de los archivos
Problema: si no se usa FAT no se puede implementar unacceso directo EFICIENTE (punteros dispersos junto conlos bloques)
Asignación indexada (2)
SOLUCION: Reunir todos los punteros en el mismo lugar bloque de índices
- La i-ésima entrada delbloque índice apunta ali-ésimo bloque delarchivo
Tarea:
Investigacion Tema: Sistemas de Archivos Remotos