Page 1
1
Módulo 11
Departamento de Ciencias e Ingeniería de la Computación
Universidad Nacional del Sur
Sistemas de Archivos
Implementación
Sistemas Operativos – Sistemas de Archivos: ImplementaciónJRA © 2008
Objetivos
Describir los detalles locales de la implementación del
sistema de archivos y estructuras de directorios
Describir la implementación de sistemas de archivos
remotos
Discutir algoritmos de alocación de bloques y bloques
libres y compromisos
Page 2
2
Sistemas Operativos – Sistemas de Archivos: ImplementaciónJRA © 2008
Estructura del Sistema de Archivos
Estructura de Archivo
Unidad Lógica de almacenamiento
Colección de información relacionada
El sistema de archivos reside en almacenamiento
secundario (discos).
El sistema de archivo está organizado en capas.
File control block – estructura de almacenaje consistente
de información sobre el archivo.
Sistemas Operativos – Sistemas de Archivos: ImplementaciónJRA © 2008
Sistema de Archivos en General
Sistema de Archivos
Estructura de
Archivos
Registros
Bloques Físicos en Memoria Principal, buffers
Bloques Físicos en
Almacenaje Secundario
Manejo Libre
Bloqueo
E/S
Alocación de
Archivos
Planificación de Disco
Métodos de
Acceso
Funciones de
manipulación de
archivos
Operación
Nombres
Control de
acceso
Manejo de
Directorios
Comandos de
Usuario y
Programas
Manejo de Archivos Sistema Operativos
Page 3
3
Sistemas Operativos – Sistemas de Archivos: ImplementaciónJRA © 2008
Un Bloque de Control de Archivos Típico
FCB: File Control Block
Sistemas Operativos – Sistemas de Archivos: ImplementaciónJRA © 2008
Estructuras de Archivo
Bloques Físicos
Registros Lógicos
Fragmentación
Bloques
físicos
Registros lógicos
Page 4
4
Sistemas Operativos – Sistemas de Archivos: ImplementaciónJRA © 2008
Estructuras del Sistema de Archivos en
Memoria
a) Apertura de un archivo b) Lectura de un archivo
Sistemas Operativos – Sistemas de Archivos: ImplementaciónJRA © 2008
Implementación de Directorio
Lista lineal de nombres de archivos con punteros a los
bloques de datos.
simple de programar
consume mucho tiempo en la ejecución
Tabla hash – Lista lineal con estructura de datos hash.
Decrece el tiempo de búsqueda en el directorio
colisiones – situaciones donde dos nombres de
archivos van a la misma locación
Tamaño fijo
Page 5
5
Sistemas Operativos – Sistemas de Archivos: ImplementaciónJRA © 2008
Métodos de Alocación
Un método de alocación se refiere a cómo los bloques de disco de un archivo son ubicados:
Alocación Contigua
Alocación Enlazada
Alocación Indexada
Sistemas Operativos – Sistemas de Archivos: ImplementaciónJRA © 2008
Alocación Contigua
Cada archivo ocupa un conjunto de bloques contiguos en el disco.
Simple – solo se necesita la locación de comienzo (block #) y la longitud (número del bloques).
Acceso aleatorio.
Desperdicio de espacio (problema de alocación dinámica).
Los archivos no pueden crecer.
Mapeo de lógico a físico.
Dirección Lógica/512
Q
R
Bloque a ser accedido = Q + dirección de comienzo
Desplazamiento dentro del bloque = R
Page 6
6
Sistemas Operativos – Sistemas de Archivos: ImplementaciónJRA © 2008
Alocación Contigua
Sistemas Operativos – Sistemas de Archivos: ImplementaciónJRA © 2008
Alocación Enlazada
Cada archivo es una lista enlazada de bloques de
disco: los bloques pueden estar en cualquier lugar del
disco.
Page 7
7
Sistemas Operativos – Sistemas de Archivos: ImplementaciónJRA © 2008
Alocación Enlazada
El archivo es definido por primero y último
Resuelve el problema de almacenaje - cualquier
bloque libre servirá
No soporta (eficientemente) el acceso directo
Simple – necesita solo la dirección inicial
Sistema de administración del espacio libre – no
malgasta espacio
No hay acceso aleatorio
Sistemas Operativos – Sistemas de Archivos: ImplementaciónJRA © 2008
Alocación Enlazada (Cont.)
File-Allocation Table (FAT) – alocación de espacio
de disco usado en MS-DOS y OS/2.
test 217......
bloque inicialnombre
entrada de directorio
eof
N° de bloques del disco - 1
339
339
618
618
217
0
Page 8
8
Sistemas Operativos – Sistemas de Archivos: ImplementaciónJRA © 2008
Alocación Indexada
Pone todos los punteros juntos en bloque índice.
Vista lógica.
Tabla de índices
Sistemas Operativos – Sistemas de Archivos: ImplementaciónJRA © 2008
Ejemplo de Alocación Indexada
Page 9
9
Sistemas Operativos – Sistemas de Archivos: ImplementaciónJRA © 2008
Alocación Indexada – Mapeo (Cont.)
índice externo
tabla de índices archivo
Sistemas Operativos – Sistemas de Archivos: ImplementaciónJRA © 2008
Esquema Combinado: UNIX (4K bytes por bloque)
Page 10
10
Sistemas Operativos – Sistemas de Archivos: ImplementaciónJRA © 2008
Administración de Espacio Libre
Vector de Bits – bit map (n bloques)
…
0 1 2 n-1
bit[i] = 1 bloque[i] libre
0 bloque[i] ocupado
Cálculo del número de bloque
(número de bits por palabra) *
(número de palabras con valor 0) +
offset del primer bit 1
Sistemas Operativos – Sistemas de Archivos: ImplementaciónJRA © 2008
Administración de Espacio Libre (Cont.)
El bit map requiere espacio extra. Ejemplo:
tamaño bloque = 212 bytes
tamaño disco = 230 bytes (1 gigabyte)
n = 230/212 = 218 bits (o 32K bytes)
Fácil de obtener archivos contiguos
Lista enlazada (lista de libres)
No es fácil obtener espacio contiguo
No malgasta espacio
Agrupamiento
Cuenta
Page 11
11
Sistemas Operativos – Sistemas de Archivos: ImplementaciónJRA © 2008
Administración de Espacio Libre (Cont.)
Necesidad de proteger:
Puntero a la lista de libres
Bit map
Debe mantenerse en disco
Copia en memoria y disco puede diferir.
No se puede permitir para bloque[i] tener una situación donde bit[i] = 1 en memoria y bit[i] = 0 en el disco.
Solución:
Poner bit[i] = 1 en el disco.
Alocar el bloque[i]
Poner bit[i] = 1 en memoria
Sistemas Operativos – Sistemas de Archivos: ImplementaciónJRA © 2008
Administración de Espacio Libre (Cont.)
Page 12
12
Sistemas Operativos – Sistemas de Archivos: ImplementaciónJRA © 2008
Eficiencia y Desempeño
La eficiencia depende de:
alocacion en el disco y algoritmos de directorio
tipos de datos mantenidos en la entrada de directorio
del archivos
Desempeño
caché de disco – sección separada de memoria
principal para bloques frecuentemente usados
free-behind y read-ahead – técnicas para optimizar el
acceso secuencial
mejora del desempeño de la PC dedicando una
sección de la memoria como disco virtual, o disco
RAM.
Sistemas Operativos – Sistemas de Archivos: ImplementaciónJRA © 2008
Distintas Locaciones del Caché de Disco
Page 13
13
Sistemas Operativos – Sistemas de Archivos: ImplementaciónJRA © 2008
Recuperación
Verificador de Consistencia – compara datos en la
estructura de directorio con bloques de datos en el
disco, y trata de reparar inconsistencias.
Uso de programas de sistema para respaldar (back up)
datos del disco a otro dispositivo de almacenaje (floppy
disk, cinta magnética, optical, etc).
Se recuperan archivos perdidos o disco por
restauración de datos del backup.
Sistemas Operativos – Sistemas de Archivos: ImplementaciónJRA © 2008
El Sistema de Archivos de Red de Sun (NFS)
Es una implementación y una especificación de un
sistema de software para acceder a archivos remotos a
través de LANs (o WANs).
La implementación es parte de los sistema operativos
Solaris y SunOS que corre sobre estaciones de trabajo
Sun usando un protocolo no confiable datagrama
(protocolo UDP/IP) y Ethernet.
Page 14
14
Sistemas Operativos – Sistemas de Archivos: ImplementaciónJRA © 2008
Vista Esquemática de la Arquitectura NFS
Módulo 11
Departamento de Ciencias e Ingeniería de la Computación
Universidad Nacional del Sur
Fin