implementacion de sistema de archivos

Post on 20-Jul-2016

8 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

Capítulo 11: Implementación 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

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

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

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

Sistema de archivos en capas

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

Un bloque de control de archivo típico

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.

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

Estructuras del SA en memoria

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.

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

Vista esquemática de VFS

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

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

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

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

Asignación contigua de espacio en disco

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

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 =

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

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

Asignación ligada

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

File-Allocation Table (FAT)

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

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

Ejemplo de asignación indexada

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

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:

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:

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

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

Esquema combinado: UNIX (4K bytes / bloque)

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

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

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

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

Lista ligada de espacio libre en disco

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

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

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

E/S sin un Cache Unificado (buffer)

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

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

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

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)

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.

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.

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

Tres sistemas de archivos independientes

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

Montando con NFS

Montaje Montando en cascada

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

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

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

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

Vista esquemática. Arquitectura NFS

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

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

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

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

El formato de archivos WAFL

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

Instantánea en WAFL

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

Un bloque de control de archivo

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

Final del Capítulo 11

top related