Presentación sobre Sistemas de Archivos de la cátedra Sistemas Operativos - UTN, FRCU.
- 1. Tema del da: Implementacin de Sistemas de Archivos
2. Objetivos
- En esta clase trataremos de:
-
- Repasar el concepto de archivo y directorio.
-
- Analizar las cuestiones de diseo e implementacin de un sistema
de archivos.
-
- Evaluar las ventajas y desventajas de cada estrategia de
implementacin.
3. Archivo
- Coleccin de informacinrelacionada ,con unnombre , que se graba
enalmacenamientosecundario
4. Archivos
- Aspectos de implementacin:
-
- Cules, dnde almacenarlos?
-
- Apertura, cierre, lectura, modificacin (contenido y atributos),
bsqueda, eliminacin, truncado.
-
- Como secuencia (de caracteres, de bytes), otros.
-
- Secuencial, Aleatorio, Indexado.
5. Archivos
6. API POSIX de Archivos
- Funciones POSIX de archivos:
-
- creat(ruta, modo_prot) / Crea un archivo.
-
- unlink(ruta)/ Borra un archivo.
-
- fd = open(ruta, flags_modo)/ Abre un archivo.
-
- close(fd)/ Cierra un archivo.
-
- read(fd, *buff, n_bytes)/ Lee n_bytes.
-
- write(fd, *buff, n_bytes)/ Escribe n_bytes.
-
- lseek(fd, offset, ref)/ Desplaza puntero.
-
- fstat(fd, *stat)/ Obtiene metainfo.
-
- fcntl(fd, cmd)/ Cambia metainfo.
- * Variable pasada como parmetro.
7. Directorio
- Asociacin unvoca entre el nombre de usuariode un archivo y su
representacin interna (metainformacin y contenido)
- Desde el punto de vista del diseo se lo puede ver como una
tabla que en cada entrada tiene el nombre de usuario del archivo
junto a informacin que permite recuperar sus metadatos y
contenido.
8. Directorios
- Aspectos de implementacin:
-
- Cules, dnde almacenarlos?
-
- Qu operaciones son vlidas sobre un directorio?
-
- Un solo nivel, dos niveles.
9. API POSIX de Directorios
- Funciones POSIX de Directorios:
-
- mkdir(ruta, modo_prot) / Crea un directorio.
-
- rmdir(ruta)/ Borra un directorio.
-
- dir = opendir(ruta)/ Abre un directorio.
-
- closedir(dir)/ Cierra un directorio.
-
- dirent = readir(dir)/ Lee sig. entrada.
-
- rewinddir(dir)/ Vuelve al principio.
-
- chdir(ruta)/ Cambia dir. Actual.
-
- ruta = getcwd()/ Directorio actual.
-
- link(ruta_ex, ruta_nue)/ Crea enlace duro.
-
- symlink(ruta_ex, ruta_nue)/ Crea enlace simb.
10. Sistema de Archivos
- Parte del sistema operativo que permite organizarla informacin
dentro de los dispositivos de almacenamiento secundario en un
formato inteligible para el sistema operativo
- Es una porcin de un disco a la que se le da una identidad
propia y que puede ser manipulada por el sistema operativo como una
entidad lgica independiente.
11. Sistemas de Archivos
- Aspectos de implementacin:
- Sistema de Archivos Virtual.
- Implementacin de Directorios.
- Gestin del Espacio Libre.
- Eficiencia y Prestaciones.
12. Sistemas de Archivos Posible implementacin de un Sistema de
Archivos 13. Sistemas de Archivos
- Un sistema de archivos Unix se estructura de la siguiente
manera:
-
- Boot: Cdigo de arranque (opcional).
-
- Superbloque: metadatos del sistema de archivos.
-
- Nodos-I: lista de los nodos-i del FS.
-
- Datos: bloques de datos del sistema de archivos.
Boot Superbloque Nodos-I Datos 14. Sistemas de Archivos
- Tamao del sistema de archivos.
- Lista de bloques libres disponibles.
- Indice del siguiente bloque libre en la lista de bloques
libres.
- Tamao de la lista de nodos-i.
15. Sistemas de Archivos
- Sistema de Archivos Virtual (VFS):
- Separa las operaciones genricas sobre archivos de su
implementacin.
- Define una interfaz clara y homognea.
- Proporciona un mecanismo para representar de manera coherente
sistemas de archivos remotos y pseudo-sistemas de archivos (el
nodo-V).
16. Sistemas de Archivos Llamadas al sistema VFS /proc PCFS HSFS
tmpfs swapfs UFS RFS NFS Memoria Espacio de memoria de proceso
disco cdrom diskette 17. Sistemas de Archivos
- Implementacin de Directorios:
-
- Simple de programar pero costoso en CPU.
-
- Para ubicar un archivo hay que recorrer todo el
directorio.
-
- Puede mejorarse con un arbol-B.
-
- El tamao fijo de la tabla hash puede ser una limitacin.
18. Sistemas de Archivos
19. Sistemas de Archivos
- Cmo ubicamos los bloques de un archivo?
20. Sistemas de Archivos
(a) Estado inicial. (b) Se han borrado los archivos D y F. 21.
Sistemas de Archivos
- Rpida para accesos de bloques adyacentes
- Sufre fragmentacin externa.
- Necesita algoritmos de compactacin.
22. Sistemas de Archivos
23. Sistemas de Archivos
- Rpida para accesos secuenciales.
- Los accesos aleatorios son lentos.
- El tamao de bloque no es potencia de 2...
24. Sistemas de Archivos n - EOF 1 Free 5 Free 7 Bad Free . 3 7
5 1 0 1 2 3 4 5 6 7 FAT (File allocation table) Bloques del Archivo
25. Sistemas de Archivos
- Asignacin Enlazada Usando un ndice (FAT):
- Los punteros estn en la FAT as que no ocupan espacio en el
bloque.
- La FAT se mantiene en memoria as se pueden acelerar las
bsquedas aleatorias.
- Dependiendo del tamao de bloque la FAT puede llegar a ocupar
bastante memoria.
- Se mantienen dos copias de la FAT por cuestiones de
seguridad.
26. Sistemas de Archivos
Indice externo Tabla de indices Archivo 27. Sistemas de Archivos
0 . . . . . . . . . . . . . . . . . 9 Indirecto Simple Indirecto
Doble Indirecto Triple IS D D B B B ID IS D D B B B B D B B 28.
Sistemas de Archivos
-
- Tamao de Bloque: 1024 Bytes.
- Direccionamiento directo?
-
- 10 bloques * 1024 Bytes = 10 KB.
-
- Cuntos punteros en un bloque?
-
- 1024 Bytes / 32 bits = 256 direcciones / bloque.
-
- 256 bloques * 1024 Bytes = 256 KB.
29. Sistemas de Archivos
-
- 256 IS * 256 bloques * 1024 B = 65536 KB
-
- 256 ID * 256 IS * 1024 B = 16 GB.
- Total = D + IS + ID + IT = 16843018 KB.
- Y con un tamao de bloque de 4096 Bytes?
30. Sistemas de Archivos
- Gestin del Espacio Libre:
- Cmo encontramos un bloque libre?
- Lista de bloques y grupos libres.
31. Sistemas de Archivos 32. Sistemas de Archivos
- 1 bit por cada bloque del disco.
- 1 para ocupado y 0 para libre.
- Muy dificil hacer una bsqueda de varios bloques.
- Pobre performance en discos muy llenos.
33. Sistemas de Archivos
- Incremento de Prestaciones
- Uso de tcnicas de lectura anticipada para optimizar accesos
secuenciales.
34. Sistemas de Archivos
-
- Poltica de Reemplazo (FIFO, MRU, LRU)
- Problemas de consistencia.
-
- Bloques especiales y bloques de datos.
- Estrategia de actualizacin.
-
- Escritura inmediata (write-through)
-
- Escritura diferida (write-back)
-
- Escritura retrasada (delayed-write)
35. Sistemas de Archivos
- Razones de prdida de datos.
-
- Almacenamiento con redundancia.
36. Sistemas de Archivos
- Recuperacin del Sistema de Archivos
- Razones de prdida de consistencia
-
- Bloques de la cache no actualizados.
-
-
- Datos de directorios o i-nodos.
- Al bootear o montar un sistema de archivos.
-
- Comprobar estructura fsica del FS.
-
- Comprobar la estructura lgica del FS.
37. Sistemas de Archivos
- Recuperacin del Sistema de Archivos
-
- Comprobar mapas de bits de i-nodos respectode los i-nodos
ocupados.
-
- Comprobar mapas de bloques respecto debloques ocupados.
-
- Verificar que ningn bloque est asignado a msde un archivo.
-
- Verificar que ningn i-nodo est asignado a msde un
directorio.
38. Sistemas de Archivos
- Para comprobar la consistencia de un sistema de archivos de
Unix, el comprobador de consistencia (fsck) construye dos listas de
contadores (cada bit mantiene informacin de un bloque de
disco)
- en uso:1 0 1 0 0 1 0 1 1 0 1 0 0 1 0
- libres:0 0 0 1 1 1 0 0 0 1 0 1 1 0 1
- Existen errores? Son serios estos errores? Qu acciones
correctivas sera necesario realizar sobre la informacin del sistema
de archivos?
39. Bibliografa
- Esta clasedebeser ampliada viendo:
-
-
- Captulo 8: Gestin de Archivos y Directorios.
-
- Silberschatz (7ma. Edicin):
-
-
- Captulo 11: Sistemas de Archivos.
40. Gracias ! Ing. Gabriel E. Arellano [email_address]
http://www.gabriel-arellano.com.ar/so/ (2008) Gabriel E. Arellano
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
Version 1.2 or any later version published by the Free Software
Foundation; with no Invariant Sections, no Front-Cover Texts, and
no Back-Cover Texts. The GNU Free Documentation License as
applicable to this document can be found
at:http://www.gnu.org/copyleft/fdl.html