Академический Документы
Профессиональный Документы
Культура Документы
th
Edition, Nov 15, 2006
Silberschatz, Galvin and Gagne 2007
Captulo 11: Implementacin Sistema de
Archivos
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Captulo 11: Implementacin Sistema Archivos
!
Estructura del Sistema de Archivos
!
Implementacin del Sistema de Archivos
!
Implementacin del Directorio
!
Mtodos de asignacin
!
Manejo de espacio-libre
!
Eficiencia y desempeo
!
Recuperacin
!
Sistema de Archivos con estructura de bitcora
!
NFS
!
Ejemplo: WAFL File System
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Objetivos
!
Describir detalles de implementacin para sistemas
de archivo locales y estructuras de directorio
!
Describir implementacin de sistemas de archivos
remotos
!
Discutir algoritmos de asignacin de bloques y
bloques libres, pros y contras
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Estructura del sistema de archivos
!
Estructura de archivo
"
Unidad de almacenamiento lgico
"
Coleccin de informacin relacionada
!
El sistema de archivos vive en almacenamiento
secundario (discos)
!
Sistema de archivos diseado en capas
!
Bloque de control de archivo estructura de
almacenamiento que contiene informacin de un archivo
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Sistema de archivos en capas
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Un bloque de control de archivo tpico
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
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 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Estructuras del SA en memoria
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
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 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Vista esquemtica de VFS
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Implementacin de Directorios
!
Lista lineal de nombres de archivos con un
apuntador a los bloques de datos.
"
fcil de programar
"
muy costosa (en tiempo) en ejecucin
!
Tabla de hash lista con estructura de
dispersin.
"
reduce el tiempo de bsqueda en el directorio
"
colisiones cuando dos archivos tiene la
misma dispersin
"
tamao fijo
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Mtodos de asignacin
!
Un mtodo de asignacin se refiere a la manera en
que asignamos bloques para archivos:
!
Asignacin contigua
!
Asignacin ligada
!
Asignacin indexada
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Asignacin contigua
!
Cada archivo ocupa un conjunto contiguo de
bloques en el disco
!
Simple slo requerimos la posicin inicial
(bloque #) y longitud (nmero de bloques)
!
Acceso aleatorio
!
Desperdiciamos espacio (problema de
asignacin dinmica de almacenamiento)
!
No pueden crecer los archivos
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Asignacin contigua de espacio en disco
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Sistemas basados en Extensin
!
Muchos sistemas de archivos modernos (v.gr.
Veritas File System, Ext4) utilizan un esquema de
asignacin contigua modificado
!
Sistemas de archivos basados en extensiones
asignan bloques de disco por extensin
!
Una extensin es una extensin contigua (bloques)
en un disco
"
Se asignan extensiones para alojar archivos
"
Un archivo consiste de una o ms extensiones
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Asignacin ligada
!
Cada archivo es una lista ligada de bloques de disco:
bloques que pueden estar regados por todo el disco.
apuntador block =
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Asignacin ligada
!
Simple requiere nicamente la direccin 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) asignacin de espacio-disco utilizado
por MS-DOS y OS/2.
DL/511
Q
R
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Asignacin ligada
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
File-Allocation Table (FAT)
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Asignacin indexada
!
Junta todos los apuntadores en un nico bloque
ndice.
!
Vista lgica.
index table
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Ejemplo de asignacin indexada
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Asignacin indexada
!
Requiere tabla ndice
!
Acceso aleatorio
!
Acceso dinmico sin fragmentacin externa, pero con la sobre-
carga del bloque ndice.
!
Mapeo de lgica a fsica en un archivo de tamao mximo de 256K
palabras y tamao de bloques de 512 palabras. Un slo bloque
para la tabla de ndices.
DL/512
Q
R
Q = Desplazamiento dentro de la tabla
R = Desplazamiento en el bloque
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Asignacin indexada -- Mapeo
!
Mapeo de lgica a fsica en un archivo de
tamao no limitado (bloque de 512 palabras).
!
Esquema ligado Ligamos bloques con tablas
ndice (sin lmite de tamao)
DL / (512 x 511)
Q
1
R
1
Q
1
= Bloque de la tabla ndice
R
1
se utiliza de la siguiente forma:
R
1
/
512
Q
2
R
2
Q
2
= Desplazamiento en el bloque de tabla ndice
R
2
desplazamiento en el bloque del archivo:
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Asignacin indexada -- Mapeo
!
ndice de dos-niveles (tamao mximo archivo 512
3
)
DL / (512 x 512)
Q
1
R
1
Q
1
= Desplazamiento en ndice externo
R
1
se utiliza de la siguiente manera:
R
1
/
512
Q
2
R
2
Q
2
= desplazamiento en el bloque de tabla ndice
R
2
desplazamiento en el bloque del archivo:
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Asignacin indexada -- Mapeo
M
ndice exterior
tabla ndice archivo
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Esquema combinado: UNIX (4K bytes / bloque)
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Manejo de espacio libre
!
Vector de bits (n bloques)
0 1 2 n-1
bit[i]
=
6
7
80 ! block[i] libre
1 ! block[i] ocupado
Clculo para nmero de bloque
(nmero de bits por palabra) *
(nmero de palabras con valor-0) +
desplazamiento al primer bit 1
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Manejo de espacio libre
!
Mapa de bits requiere espacio extra
"
Ejemplo:
tamao de bloque = 2
12
bytes
tamao de disco = 2
30
bytes (1 GB)
n = 2
30
/2
12
= 2
18
bits (o 32K bytes)
!
Fcil obtener archivos contiguos
!
Lista ligada (lista libre)
"
No puede obtener espacio contiguo fcilmente
"
No desperdicia espacio
!
Agrupamiento
!
Contabilidad
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
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 situacin donde block[i]
tenga bit[i] = 1 en memoria y bit[i] = 0 en disco
"
Solucin:
!
Asignar bit[i] = 1 en disco
!
Asignar block[i]
!
Asignar bit[i] = 1 en memoria
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Lista ligada de espacio libre en disco
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Eficiencia y rendimiento
!
Eficiencia depende de:
"
algoritmos para asignacin de disco y directorio
"
tipo de datos se mantiene en la entrada del
archivo en el directorio
!
Rendimiento
"
cache de disco seccin separada de memoria
para bloques utilizados continuamente
"
libre-atrs y leer-adelante tcnicas para
optimizar acceso secuencial
"
mejorar rendimiento del sistema asignando parte
de la memoria como disco virtual, o disco RAM
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Cache de pginas
!
Un cache de pginas en lugar de bloques de disco
para utilizar las tcnicas de memoria virtual
!
E/S con memoria-mapeada utiliza un cache de
pginas
!
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 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
E/S sin un Cache Unificado (buffer)
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Cache Unificado (buffer)
!
Un cache unificado utiliza el mismo cache de
pginas tanto para las mapeadas-a-memoria
como para E/S ordinaria del SA
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Recuperacin
!
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
magntico u pticos)
!
Recuperar el archivo perdido recuperndolo del
respaldo
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Sistemas de archivos con bitcora
!
Sistemas de archivo con bitcora (o journaling) guarda cada
actualizacin al sistema de archivos como una transaccin
!
Todas las transacciones se escriben a la bitcora
"
Una transaccin se compromete cuando est escrita en
la bitcora
"
Sin embargo, el sistema de archivos puede no estar
actualizado an
!
Las transacciones en la bitcora son escritas de manera
sncrona al sistema de archivos
"
Cuando se modifica un sistema el archivos, se elimina la
transaccin de la bitcora
!
Si se cae el sistema de archivos, todas las transacciones
pendientes en la bitcora deben realizarse
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
El Network File System (NFS) de Sun
!
Una implementacin y especificacin de software
para acceder a archivos remotos a travs de redes
LAN (o WAN)
!
La implementacin es parte de Solaris (antes
SunOS) utilizando el protocolo UDP (Unreliable
Datagram Protocol)
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
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 estndar del
sistema local
"
La especificacin 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 autorizacin y autenticacin.
Potencialmente cualquier directorio en el sistema de
archivos remoto puede montarse sobre cualquier directorio
local.
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
NFS
!
NFS est diseado para operar en un ambiente
heterogneo con distintos equipos, sistemas
operativos y arquitectura de red. La especificacin
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 especificacin de NFS distingue entre los
servicios provistos por el mecanismo de montaje y
aquellos del acceso-al-archivo-remoto.
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Tres sistemas de archivos independientes
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Montando con NFS
Montaje Montando en cascada
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Protocolo de montado de NFS
!
Establece la conexin lgica entre servidor y cliente
!
La operacin de montado incluye los nombres del directorio
remoto y el servidor que lo contiene
"
La solicitud se mapea a la RPC correspondiente y se enva
al demonio mount corriendo en el servidor
"
Lista de exportacin especifica los archivos locales que
exporta el servidor, junto con los nombres de las mquinas
que pueden montarlos
!
Siguiendo a una solicitud de montado aprobada por la lista de
exportacin, el servidor regresa un manejador de archivouna
llave para accesos futuros
!
Manejador de archivo un identificador de archivo-sistema y un
nmero de inodo para identificar el directorio montado dentro del
sistema de archivos exportado
!
La operacin de montaje cambia la visin del usuario y no afecta
la del servidor
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
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 2007
Operating System Concepts with Java 7
th
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 adems
de acuerdo a su tipo de sistema de archivos
"
El VFS activa operaciones especficas 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 ms baja de la arquitectura
"
Implementa el protocolo NFS
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Vista esquemtica. Arquitectura NFS
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
NFS: Traduccin de rutas
!
Se realiza partiendo la ruta en sus nombres
componentes y realizando una llamada de
bsqueda NFS para cada par de componentes
nombre y directorio vnode
!
Para acelerar la bsqueda, un cache de nombres
de directorios del lado del cliente mantiene los
vnodes de los nombres de directorios remotos
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
NFS Operaciones remotas
!
Casi corresponden uno-a-uno con las llamadas al sistema
estndar de UNIX (excepto abrir y cerrar archivos)
!
NFS se adhiere al paradigma de servicio remoto, pero emplea
tcnicas 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 slo si sus
atributos estn al da
!
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 2007
Operating System Concepts with Java 7
th
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 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
El formato de archivos WAFL
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Instantnea en WAFL
11.
Silberschatz, Galvin and Gagne 2007
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Un bloque de control de archivo
Operating System Concepts with Java 7
th
Edition, Nov 15, 2006
Silberschatz, Galvin and Gagne 2007
Final del Captulo 11