implementacion de sistema de archivos

52
Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Capítulo 11: Implementación Sistema de Archivos

Upload: javy-carvajal

Post on 20-Jul-2016

8 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Implementacion de Sistema de Archivos

Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007

Capítulo 11: Implementación Sistema de Archivos

Page 2: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Capítulo 11: Implementación Sistema Archivos

Estructura del Sistema de Archivos Implementación del Sistema de Archivos Implementación del Directorio Métodos de asignación Manejo de espacio-libre Eficiencia y desempeño Recuperación Sistema de Archivos con estructura de bitácora NFS Ejemplo: WAFL File System

Page 3: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Objetivos

Describir detalles de implementación para sistemas de archivo locales y estructuras de directorio

Describir implementación de sistemas de archivos remotos

Discutir algoritmos de asignación de bloques y bloques libres, pros y contras

Page 4: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Estructura del sistema de archivos

Estructura de archivo Unidad de almacenamiento lógico Colección de información relacionada

El sistema de archivos vive en almacenamiento secundario (discos)

Sistema de archivos diseñado en capas Bloque de control de archivo – estructura de

almacenamiento que contiene información de un archivo

Page 5: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Sistema de archivos en capas

Page 6: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Un bloque de control de archivo típico

Page 7: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Estructuras del SA en memoria

La siguiente figura ilustra las estructuras requeridas por el sistema de archivos y que son provistas por el sistema operativo.

Figura 12-3(a): abriendo un archivo.

Figura 12-3(b): leyendo un archivo.

Page 8: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Estructuras del SA en memoria

Page 9: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Sistema virtual de archivos (VFS)

Sistema Virtual de Archivos (VFS) ofrecer una manera orientada a objetos para implementar sistemas de archivos.

VFS permite utilizar la misma interfaz de llamadas al sistema (el API) para distintos tipos de sistemas de archivos.

Dicha API es la interfaz de VFS y no la de un tipo particular de sistema de archivos.

Page 10: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Vista esquemática de VFS

Page 11: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Implementación de Directorios

Lista lineal de nombres de archivos con un apuntador a los bloques de datos. fácil de programar muy costosa (en tiempo) en ejecución

Tabla de hash – lista con estructura de dispersión. reduce el tiempo de búsqueda en el directorio colisiones – cuando dos archivos tiene la

misma dispersión tamaño fijo

Page 12: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Métodos de asignación

Un método de asignación se refiere a la manera en que asignamos bloques para archivos:

Asignación contigua

Asignación ligada

Asignación indexada

Page 13: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Asignación contigua

Cada archivo ocupa un conjunto contiguo de bloques en el disco

Simple – sólo requerimos la posición inicial (bloque #) y longitud (número de bloques)

Acceso aleatorio Desperdiciamos espacio (problema de

asignación dinámica de almacenamiento) No pueden crecer los archivos

Page 14: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Asignación contigua de espacio en disco

Page 15: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Sistemas basados en Extensión

Muchos sistemas de archivos modernos (v.gr. Veritas File System, Ext4) utilizan un esquema de asignación contigua modificado

Sistemas de archivos basados en extensiones asignan bloques de disco por extensión

Una extensión es una extensión contigua (bloques) en un disco Se asignan extensiones para alojar archivos Un archivo consiste de una o más extensiones

Page 16: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Asignación ligada

Cada archivo es una lista ligada de bloques de disco: bloques que pueden estar regados por todo el disco.

apuntadorblock =

Page 17: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Asignación ligada

Simple – requiere únicamente la dirección inicial Sistema para manejo de espacio libre – no desperdicia espacio No hay acceso aleatorio Mapeo

Accediendo al Q-ésimo bloque en la cadena ligada de bloques que representa el archivo.Desplazamiento en el bloque = R + 1

File-allocation table (FAT) – asignación de espacio-disco utilizado por MS-DOS y OS/2.

DL/511

Q

R

Page 18: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Asignación ligada

Page 19: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

File-Allocation Table (FAT)

Page 20: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Asignación indexada

Junta todos los apuntadores en un único bloque índice.

Vista lógica.

index table

Page 21: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Ejemplo de asignación indexada

Page 22: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Asignación indexada

Requiere tabla índice Acceso aleatorio Acceso dinámico sin fragmentación externa, pero con la sobre-

carga del bloque índice. Mapeo de lógica a física en un archivo de tamaño máximo de 256K

palabras y tamaño de bloques de 512 palabras. Un sólo bloque para la tabla de índices.

DL/512Q

R

Q = Desplazamiento dentro de la tablaR = Desplazamiento en el bloque

Page 23: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Asignación indexada -- Mapeo

Mapeo de lógica a física en un archivo de tamaño no limitado (bloque de 512 palabras).

Esquema ligado – Ligamos bloques con tablas índice (sin límite de tamaño)

DL / (512 x 511)Q1

R1

Q1 = Bloque de la tabla índiceR1 se utiliza de la siguiente forma:

R1 / 512

Q2

R2

Q2 = Desplazamiento en el bloque de tabla índiceR2 desplazamiento en el bloque del archivo:

Page 24: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Asignación indexada -- Mapeo

Índice de dos-niveles (tamaño máximo archivo 5123)

DL / (512 x 512)Q1

R1

Q1 = Desplazamiento en índice externoR1 se utiliza de la siguiente manera:

R1 / 512

Q2

R2

Q2 = desplazamiento en el bloque de tabla índiceR2 desplazamiento en el bloque del archivo:

Page 25: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Asignación indexada -- Mapeo

M

índice exterior

tabla índice archivo

Page 26: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Esquema combinado: UNIX (4K bytes / bloque)

Page 27: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Manejo de espacio libre Vector de bits (n bloques)

…0 1 2 n-1

bit[i] =

67

8 0 ⇒ block[i] libre

1 ⇒ block[i] ocupado

Cálculo para número de bloque

(número de bits por palabra) *(número de palabras con valor-0) +desplazamiento al primer bit 1

Page 28: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Manejo de espacio libre

Mapa de bits requiere espacio extra Ejemplo:

tamaño de bloque = 212 bytes tamaño de disco = 230 bytes (1 GB) n = 230/212 = 218 bits (o 32K bytes)

Fácil obtener archivos contiguos Lista ligada (lista libre)

No puede obtener espacio contiguo fácilmente No desperdicia espacio

Agrupamiento Contabilidad

Page 29: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Manejo de espacio libre Necesitamos proteger:

Apuntador a la lista libre Mapa de bits

Debe mantenerse en disco Copia en memoria y disco pueden diferir No puede permitir situación donde block[i]

tenga bit[i] = 1 en memoria y bit[i] = 0 en disco Solución:

Asignar bit[i] = 1 en disco Asignar block[i] Asignar bit[i] = 1 en memoria

Page 30: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Lista ligada de espacio libre en disco

Page 31: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Eficiencia y rendimiento Eficiencia depende de:

algoritmos para asignación de disco y directorio tipo de datos se mantiene en la entrada del

archivo en el directorio

Rendimiento cache de disco – sección separada de memoria

para bloques utilizados continuamente libre-atrás y leer-adelante – técnicas para

optimizar acceso secuencial mejorar rendimiento del sistema asignando parte

de la memoria como disco virtual, o disco RAM

Page 32: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Cache de páginas Un cache de páginas en lugar de bloques de disco

para utilizar las técnicas de memoria virtual

E/S con memoria-mapeada utiliza un cache de páginas

Rutinas de E/S en el sistema de archivos utilizan el cache en disco (buffer)

Esto nos lleva a la siguiente imagen

Page 33: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

E/S sin un Cache Unificado (buffer)

Page 34: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Cache Unificado (buffer)

Un cache unificado utiliza el mismo cache de páginas tanto para las mapeadas-a-memoria como para E/S ordinaria del SA

Page 35: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Recuperación

Chequeo de consistencia – compara los datos en la estructura del directorio con los bloques en disco, trata de corregir inconsistencias

Utilizar programas para respaldar los datos del disco a otro dispositivo (floppy, cintas, otros discos magnético u ópticos)

Recuperar el archivo perdido recuperándolo del respaldo

Page 36: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Sistemas de archivos con bitácora

Sistemas de archivo con bitácora (o journaling) guarda cada actualización al sistema de archivos como una transacción

Todas las transacciones se escriben a la bitácora Una transacción se compromete cuando está escrita en

la bitácora Sin embargo, el sistema de archivos puede no estar

actualizado aún Las transacciones en la bitácora son escritas de manera

síncrona al sistema de archivos Cuando se modifica un sistema el archivos, se elimina la

transacción de la bitácora Si se cae el sistema de archivos, todas las transacciones

pendientes en la bitácora deben realizarse

Page 37: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

El Network File System (NFS) de Sun

Una implementación y especificación de software para acceder a archivos remotos a través de redes LAN (o WAN)

La implementación es parte de Solaris (antes SunOS) utilizando el protocolo UDP (Unreliable Datagram Protocol)

Page 38: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

NFS Estaciones ínter-conectadas con sus propios sistemas de

archivos. Esto permite compartir entre ellas de manera transparente. Un directorio remoto se monta en un directorio del sistema

de archivos local El directorio montado luce como sub-árbol estándar del

sistema local La especificación del directorio remoto no es transparente;

debe etiquetarse con el nombre del servidor remoto Los archivos en el directorio remoto se acceden de

manera transparente Sujeto a permisos de autorización y autenticación.

Potencialmente cualquier directorio en el sistema de archivos remoto puede montarse sobre cualquier directorio local.

Page 39: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

NFS

NFS está diseñado para operar en un ambiente heterogéneo con distintos equipos, sistemas operativos y arquitectura de red. La especificación de NFS es independiente de estas variables.

Esta independencia se alcanza utilizando primitivas RPC sobre el protocolo External Data Representation (XDR) (que deben implementar ambos extremos).

La especificación de NFS distingue entre los servicios provistos por el mecanismo de montaje y aquellos del acceso-al-archivo-remoto.

Page 40: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Tres sistemas de archivos independientes

Page 41: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Montando con NFS

Montaje Montando en cascada

Page 42: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Protocolo de montado de NFS Establece la conexión lógica entre servidor y cliente La operación de montado incluye los nombres del directorio

remoto y el servidor que lo contiene La solicitud se mapea a la RPC correspondiente y se envía

al demonio mount corriendo en el servidor Lista de exportación – especifica los archivos locales que

exporta el servidor, junto con los nombres de las máquinas que pueden montarlos

Siguiendo a una solicitud de montado aprobada por la lista de exportación, el servidor regresa un manejador de archivo—una llave para accesos futuros

Manejador de archivo – un identificador de archivo-sistema y un número de inodo para identificar el directorio montado dentro del sistema de archivos exportado

La operación de montaje cambia la visión del usuario y no afecta la del servidor

Page 43: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Protocolo NFS Provee un conjunto de llamadas a procedimientos remotos

para operar sobre archivos. Soportan las operaciones: buscar un archivo dentro de un directorio leer un conjunto de entradas de directorio manipular ligas y directorios acceder atributos de archivos leer y escribir archivos

Servidores NFS no conservan estado; cada solicitud debe proveer un conjunto completo de argumentos(NFS V4 2000..2003 – muy diferente, con estado, seguridad)

Datos modificados deben enviarse al disco del servidor antes de regresar al cliente (se pierde la ventaja de cachar)

El protocolo NFS no provee mecanismos de control de concurrencia

Page 44: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Tres capas importantes arquitectura NFS

Interfaz al sistema de archivos UNIX (basada en las llamadas open, read, write, y close, y file descriptors)

Capa Virtual File System (VFS) – distingue entre archivos locales y remotos. Los archivos locales se distinguen además de acuerdo a su tipo de sistema de archivos El VFS activa operaciones específicas de sistemas de

archivos para manejar las solicitudes locales de acuerdo a sus tipos

Llama los procedimientos del protocolo NFS para solicitudes remotas

Capa de servicio NFS – capa más baja de la arquitectura Implementa el protocolo NFS

Page 45: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Vista esquemática. Arquitectura NFS

Page 46: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

NFS: Traducción de rutas

Se realiza partiendo la ruta en sus nombres componentes y realizando una llamada de búsqueda NFS para cada par de componentes nombre y directorio vnode

Para acelerar la búsqueda, un cache de nombres de directorios del lado del cliente mantiene los vnodes de los nombres de directorios remotos

Page 47: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

NFS Operaciones remotas Casi corresponden uno-a-uno con las llamadas al sistema

estándar de UNIX (excepto abrir y cerrar archivos) NFS se adhiere al paradigma de servicio remoto, pero emplea

técnicas de buffering y cache para mejorar el rendimiento Cache de bloques-archivo – cuando se abre un archivo, el

kernel checa con el servidor remoto si trae o re-valida los atributos cachados Se utilizan los bloques del archivo cachados sólo si sus

atributos están al día Cache de atributos de archivo – se actualiza el cache cada

vez que llegan nuevos atributos del servidor Los clientes no liberan bloques escritos hasta que el servidor

confirma que han sido escritos a disco

Page 48: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Ejemplo: Sistema de Archivos WAFL

Utilizado en Dispositivos de Red “Filers” – dispositivos de sistemas de archivos distribuidos

Formato de archivos escribe-en-cualquier-lugar Sirve NFS, CIFS, http, ftp Optimizado para E/S aleatoria, escritura optimizada

NVRAM para cachar escritura Similar a Berkeley Fast File System, con muchas

modificaciones

Page 49: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

El formato de archivos WAFL

Page 50: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Instantánea en WAFL

Page 51: Implementacion de Sistema de Archivos

11. Silberschatz, Galvin and Gagne ©2007Operating System Concepts with Java – 7th Edition, Nov 15, 2006

Un bloque de control de archivo

Page 52: Implementacion de Sistema de Archivos

Operating System Concepts with Java – 7th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007

Final del Capítulo 11