Tema del día: Implementación de Sistemas de Archivos
Objetivos <ul><li>En esta clase trataremos de: </li></ul><ul><ul><li>Repasar el concepto de archivo y directorio. </li></u...
Archivo <ul><li>“ Colección de información  relacionada ,  con un  nombre , que se graba en  almacenamiento  secundario ” ...
Archivos <ul><li>Aspectos de implementación: </li></ul><ul><li>Atributos. </li></ul><ul><ul><li>Cuáles, dónde almacenarlos...
Archivos <ul><li>Estructuras de Archivos </li></ul>
API POSIX de Archivos <ul><li>Funciones POSIX de archivos: </li></ul><ul><ul><li>creat(ruta, modo_prot)   / Crea un archiv...
Directorio <ul><li>“ Asociación unívoca entre el nombre de usuario  de un archivo y su representación interna (metainforma...
Directorios <ul><li>Aspectos de implementación: </li></ul><ul><li>Atributos. </li></ul><ul><ul><li>Cuáles, dónde almacenar...
API POSIX de Directorios <ul><li>Funciones POSIX de Directorios: </li></ul><ul><ul><li>mkdir(ruta, modo_prot)   / Crea un ...
Sistema de Archivos <ul><li>“ Parte del sistema operativo que permite organizar  la información dentro de los dispositivos...
Sistemas de Archivos <ul><li>Aspectos de implementación: </li></ul><ul><li>Particiones y Montaje. </li></ul><ul><li>Sistem...
Sistemas de Archivos Posible implementación de un Sistema de Archivos
Sistemas de Archivos <ul><li>Un sistema de archivos Unix se estructura de la siguiente manera: </li></ul><ul><ul><li>Boot:...
Sistemas de Archivos <ul><li>El Superbloque contiene: </li></ul><ul><li>Tamaño del sistema de archivos. </li></ul><ul><li>...
Sistemas de Archivos <ul><li>Sistema de Archivos Virtual (VFS): </li></ul><ul><li>Separa las operaciones genéricas sobre a...
Sistemas de Archivos Llamadas al sistema VFS /proc PCFS HSFS tmpfs swapfs UFS RFS NFS Memoria Espacio de memoria de proces...
Sistemas de Archivos <ul><li>Implementación de Directorios: </li></ul><ul><li>Como una lista lineal: </li></ul><ul><ul><li...
Sistemas de Archivos <ul><li>Directorio DOS/Windows: </li></ul><ul><li>Directorio Unix: </li></ul>
Sistemas de Archivos <ul><li>Asignación de Espacio: </li></ul><ul><li>Cómo ubicamos los bloques de un archivo? </li></ul><...
Sistemas de Archivos <ul><li>Asignación Contigua: </li></ul>(a) Estado inicial. (b) Se han borrado los archivos D y F.
Sistemas de Archivos <ul><li>Asignación Contigua: </li></ul><ul><li>Ventajas: </li></ul><ul><li>Simple de implementar. </l...
Sistemas de Archivos <ul><li>Asignación Enlazada: </li></ul>
Sistemas de Archivos <ul><li>Asignación Enlazada: </li></ul><ul><li>Ventajas: </li></ul><ul><li>No sufre fragmentación. </...
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 ...
Sistemas de Archivos <ul><li>Asignación Enlazada Usando un Índice (FAT): </li></ul><ul><li>Los punteros están en la FAT as...
Sistemas de Archivos <ul><li>Asignación Indexada: </li></ul> Indice externo Tabla de indices Archivo
Sistemas de Archivos 0 . . . . . . . . . . . . . . . . . 9 Indirecto Simple Indirecto Doble Indirecto Triple IS D D B B B ...
Sistemas de Archivos <ul><li>Capacidad máxima: </li></ul><ul><ul><li>Punteros de 32 bits. </li></ul></ul><ul><ul><li>Tamañ...
Sistemas de Archivos <ul><li>Capacidad máxima (cont): </li></ul><ul><li>Indirecto Doble? </li></ul><ul><ul><li>256 IS * 25...
Sistemas de Archivos <ul><li>Gestión del Espacio Libre: </li></ul><ul><li>Cómo encontramos un bloque libre? </li></ul><ul>...
Sistemas de Archivos
Sistemas de Archivos <ul><li>Mapas de bits: </li></ul><ul><li>1 bit por cada bloque del disco. </li></ul><ul><li>1 para oc...
Sistemas de Archivos <ul><li>Incremento de Prestaciones </li></ul><ul><li>Uso de discos RAM. </li></ul><ul><li>Uso de un c...
Sistemas de Archivos <ul><li>Caché de Bloques </li></ul><ul><li>Gestión del Caché. </li></ul><ul><ul><li>Política de Reemp...
Sistemas de Archivos <ul><li>Fiabilidad y Recuperación </li></ul><ul><li>Razones de pérdida de datos. </li></ul><ul><ul><l...
Sistemas de Archivos <ul><li>Recuperación del Sistema de Archivos </li></ul><ul><li>Razones de pérdida de consistencia </l...
Sistemas de Archivos <ul><li>Recuperación del Sistema de Archivos </li></ul><ul><ul><li>Comprobar Superbloque. </li></ul><...
Sistemas de Archivos <ul><li>Ejemplo  </li></ul><ul><li>Para comprobar la consistencia de un sistema de archivos de Unix, ...
Bibliografía <ul><li>Esta clase  debe  ser ampliada viendo: </li></ul><ul><ul><li>Carretero (1ra. edición): </li></ul></ul...
Gracias !   Ing. Gabriel E. Arellano [email_address] http://www.gabriel-arellano.com.ar/so/ (2008) Gabriel E. Arellano Per...
Próxima SlideShare
Cargando en…5
×

Sistemas de Archivos

21.956 visualizaciones

Publicado el

Presentación sobre Sistemas de Archivos de la cátedra Sistemas Operativos - UTN, FRCU.

Publicado en: Tecnología
2 comentarios
11 recomendaciones
Estadísticas
Notas
  • http://www.slideshare.net/SOID_ATEFORP_AIPAT/racso-40-dia-2-parte-1-a

    http://www.slideshare.net/SOID_ATEFORP_AIPAT/1-tablero-de-diseo-inteligente


    AYUDENSE POR FAVOR A DIFUNDIR LA PAGINA DE NUEVAS COSAS
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
  • acabo de descargarlo pero no se puede leer el archivo y ya lo intente con Excel por ser un archivo xml ....ayuda por favor..
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
Sin descargas
Visualizaciones
Visualizaciones totales
21.956
En SlideShare
0
De insertados
0
Número de insertados
154
Acciones
Compartido
0
Descargas
659
Comentarios
2
Recomendaciones
11
Insertados 0
No insertados

No hay notas en la diapositiva.

Sistemas de Archivos

  1. 1. Tema del día: Implementación de Sistemas de Archivos
  2. 2. Objetivos <ul><li>En esta clase trataremos de: </li></ul><ul><ul><li>Repasar el concepto de archivo y directorio. </li></ul></ul><ul><ul><li>Analizar las cuestiones de diseño e implementación de un sistema de archivos. </li></ul></ul><ul><ul><li>Evaluar las ventajas y desventajas de cada estrategia de implementación. </li></ul></ul>
  3. 3. Archivo <ul><li>“ Colección de información relacionada , con un nombre , que se graba en almacenamiento secundario ” </li></ul><ul><li>Atributos de un archivo: </li></ul><ul><ul><li>Nombre. </li></ul></ul><ul><ul><li>Identificador único. </li></ul></ul><ul><ul><li>Tipo. </li></ul></ul><ul><ul><li>Ubicación (de los datos). </li></ul></ul><ul><ul><li>Tamaño. </li></ul></ul><ul><ul><li>Protección. </li></ul></ul><ul><ul><li>Información temporal. </li></ul></ul>
  4. 4. Archivos <ul><li>Aspectos de implementación: </li></ul><ul><li>Atributos. </li></ul><ul><ul><li>Cuáles, dónde almacenarlos? </li></ul></ul><ul><li>Operaciones. </li></ul><ul><ul><li>Apertura, cierre, lectura, modificación (contenido y atributos), búsqueda, eliminación, truncado. </li></ul></ul><ul><li>Estructura. </li></ul><ul><ul><li>Como secuencia (de caracteres, de bytes), otros. </li></ul></ul><ul><li>Métodos de Acceso. </li></ul><ul><ul><li>Secuencial, Aleatorio, Indexado. </li></ul></ul>
  5. 5. Archivos <ul><li>Estructuras de Archivos </li></ul>
  6. 6. API POSIX de Archivos <ul><li>Funciones POSIX de archivos: </li></ul><ul><ul><li>creat(ruta, modo_prot) / Crea un archivo. </li></ul></ul><ul><ul><li>unlink(ruta) / Borra un archivo. </li></ul></ul><ul><ul><li>fd = open(ruta, flags_modo) / Abre un archivo. </li></ul></ul><ul><ul><li>close(fd) / Cierra un archivo. </li></ul></ul><ul><ul><li>read(fd, *buff, n_bytes) / Lee n_bytes. </li></ul></ul><ul><ul><li>write(fd, *buff, n_bytes) / Escribe n_bytes. </li></ul></ul><ul><ul><li>lseek(fd, offset, ref) / Desplaza puntero. </li></ul></ul><ul><ul><li>fstat(fd, *stat) / Obtiene metainfo. </li></ul></ul><ul><ul><li>fcntl(fd, cmd) / Cambia metainfo. </li></ul></ul><ul><li>* Variable pasada como parámetro. </li></ul>
  7. 7. Directorio <ul><li>“ Asociación unívoca entre el nombre de usuario de un archivo y su representación interna (metainformación y contenido)” </li></ul><ul><li>Desde el punto de vista del diseño se lo puede ver como una tabla que en cada entrada tiene el nombre de usuario del archivo junto a información que permite recuperar sus metadatos y contenido. </li></ul>
  8. 8. Directorios <ul><li>Aspectos de implementación: </li></ul><ul><li>Atributos. </li></ul><ul><ul><li>Cuáles, dónde almacenarlos? </li></ul></ul><ul><li>Operaciones. </li></ul><ul><ul><li>Qué operaciones son válidas sobre un directorio? </li></ul></ul><ul><li>Estructura. </li></ul><ul><ul><li>Un solo nivel, dos niveles. </li></ul></ul><ul><ul><li>Como árbol. </li></ul></ul><ul><ul><li>Como grafo acíclico. </li></ul></ul>
  9. 9. API POSIX de Directorios <ul><li>Funciones POSIX de Directorios: </li></ul><ul><ul><li>mkdir(ruta, modo_prot) / Crea un directorio. </li></ul></ul><ul><ul><li>rmdir(ruta) / Borra un directorio. </li></ul></ul><ul><ul><li>dir = opendir(ruta) / Abre un directorio. </li></ul></ul><ul><ul><li>closedir(dir) / Cierra un directorio. </li></ul></ul><ul><ul><li>dirent = readir(dir) / Lee sig. entrada. </li></ul></ul><ul><ul><li>rewinddir(dir) / Vuelve al principio. </li></ul></ul><ul><ul><li>chdir(ruta) / Cambia dir. Actual. </li></ul></ul><ul><ul><li>ruta = getcwd() / Directorio actual. </li></ul></ul><ul><ul><li>link(ruta_ex, ruta_nue) / Crea enlace duro. </li></ul></ul><ul><ul><li>symlink(ruta_ex, ruta_nue) / Crea enlace simb. </li></ul></ul>
  10. 10. Sistema de Archivos <ul><li>“ Parte del sistema operativo que permite organizar la información dentro de los dispositivos de almacenamiento secundario en un formato inteligible para el sistema operativo” </li></ul><ul><li>Conceptos previos: </li></ul><ul><li>Partición: </li></ul><ul><li>Es una porción de un disco a la que se le da una identidad propia y que puede ser manipulada por el sistema operativo como una entidad lógica independiente. </li></ul>
  11. 11. Sistemas de Archivos <ul><li>Aspectos de implementación: </li></ul><ul><li>Particiones y Montaje. </li></ul><ul><li>Sistema de Archivos Virtual. </li></ul><ul><li>Implementación de Directorios. </li></ul><ul><li>Asignación de Espacio. </li></ul><ul><li>Gestión del Espacio Libre. </li></ul><ul><li>Eficiencia y Prestaciones. </li></ul><ul><li>Recuperación. </li></ul>
  12. 12. Sistemas de Archivos Posible implementación de un Sistema de Archivos
  13. 13. Sistemas de Archivos <ul><li>Un sistema de archivos Unix se estructura de la siguiente manera: </li></ul><ul><ul><li>Boot: Código de arranque (opcional). </li></ul></ul><ul><ul><li>Superbloque: metadatos del sistema de archivos. </li></ul></ul><ul><ul><li>Nodos-I: lista de los nodos-i del FS. </li></ul></ul><ul><ul><li>Datos: bloques de datos del sistema de archivos. </li></ul></ul>Boot Superbloque Nodos-I Datos
  14. 14. Sistemas de Archivos <ul><li>El Superbloque contiene: </li></ul><ul><li>Tamaño del sistema de archivos. </li></ul><ul><li>Lista de bloques libres disponibles. </li></ul><ul><li>Indice del siguiente bloque libre en la lista de bloques libres. </li></ul><ul><li>Tamaño de la lista de nodos-i. </li></ul><ul><li>Total de nodos-i libres. </li></ul><ul><li>Lista de nodos-i libres. </li></ul>
  15. 15. Sistemas de Archivos <ul><li>Sistema de Archivos Virtual (VFS): </li></ul><ul><li>Separa las operaciones genéricas sobre archivos de su implementación. </li></ul><ul><li>Define una interfaz clara y homogénea. </li></ul><ul><li>Proporciona un mecanismo para representar de manera coherente sistemas de archivos remotos y pseudo-sistemas de archivos (el nodo-V). </li></ul>
  16. 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. 17. Sistemas de Archivos <ul><li>Implementación de Directorios: </li></ul><ul><li>Como una lista lineal: </li></ul><ul><ul><li>Simple de programar pero costoso en CPU. </li></ul></ul><ul><ul><li>Para ubicar un archivo hay que recorrer todo el directorio. </li></ul></ul><ul><ul><li>Puede mejorarse con un arbol-B. </li></ul></ul><ul><li>Como una tabla hash: </li></ul><ul><ul><li>Se agrega un índice hash. </li></ul></ul><ul><ul><li>El tamaño fijo de la tabla hash puede ser una limitación. </li></ul></ul>
  18. 18. Sistemas de Archivos <ul><li>Directorio DOS/Windows: </li></ul><ul><li>Directorio Unix: </li></ul>
  19. 19. Sistemas de Archivos <ul><li>Asignación de Espacio: </li></ul><ul><li>Cómo ubicamos los bloques de un archivo? </li></ul><ul><li>Asignación Contigua. </li></ul><ul><li>Asignación Enlazada. </li></ul><ul><li>Asignación Indexada. </li></ul>
  20. 20. Sistemas de Archivos <ul><li>Asignación Contigua: </li></ul>(a) Estado inicial. (b) Se han borrado los archivos D y F.
  21. 21. Sistemas de Archivos <ul><li>Asignación Contigua: </li></ul><ul><li>Ventajas: </li></ul><ul><li>Simple de implementar. </li></ul><ul><li>Rápida para accesos de bloques adyacentes </li></ul><ul><li>Desventajas: </li></ul><ul><li>Sufre fragmentación externa. </li></ul><ul><li>Necesita algoritmos de compactación. </li></ul>
  22. 22. Sistemas de Archivos <ul><li>Asignación Enlazada: </li></ul>
  23. 23. Sistemas de Archivos <ul><li>Asignación Enlazada: </li></ul><ul><li>Ventajas: </li></ul><ul><li>No sufre fragmentación. </li></ul><ul><li>Rápida para accesos secuenciales. </li></ul><ul><li>Desventajas: </li></ul><ul><li>Los accesos aleatorios son lentos. </li></ul><ul><li>El tamaño de bloque no es potencia de 2... </li></ul>
  24. 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. 25. Sistemas de Archivos <ul><li>Asignación Enlazada Usando un Índice (FAT): </li></ul><ul><li>Los punteros están en la FAT así que no ocupan espacio en el bloque. </li></ul><ul><li>La FAT se mantiene en memoria así se pueden acelerar las búsquedas aleatorias. </li></ul><ul><li>Dependiendo del tamaño de bloque la FAT puede llegar a ocupar bastante memoria. </li></ul><ul><li>Se mantienen dos copias de la FAT por cuestiones de seguridad. </li></ul>
  26. 26. Sistemas de Archivos <ul><li>Asignación Indexada: </li></ul> Indice externo Tabla de indices Archivo
  27. 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. 28. Sistemas de Archivos <ul><li>Capacidad máxima: </li></ul><ul><ul><li>Punteros de 32 bits. </li></ul></ul><ul><ul><li>Tamaño de Bloque: 1024 Bytes. </li></ul></ul><ul><li>Direccionamiento directo? </li></ul><ul><ul><li>10 bloques * 1024 Bytes = 10 KB. </li></ul></ul><ul><li>Indirecto Simple? </li></ul><ul><ul><li>Cuántos punteros en un bloque? </li></ul></ul><ul><ul><li>1024 Bytes / 32 bits = 256 direcciones / bloque. </li></ul></ul><ul><ul><li>256 bloques * 1024 Bytes = 256 KB. </li></ul></ul>
  29. 29. Sistemas de Archivos <ul><li>Capacidad máxima (cont): </li></ul><ul><li>Indirecto Doble? </li></ul><ul><ul><li>256 IS * 256 bloques * 1024 B = 65536 KB </li></ul></ul><ul><li>Indirecto Triple? </li></ul><ul><ul><li>256 ID * 256 IS * 1024 B = 16 GB. </li></ul></ul><ul><li>Total = D + IS + ID + IT = 16843018 KB. </li></ul><ul><li>Y con un tamaño de bloque de 4096 Bytes? </li></ul>
  30. 30. Sistemas de Archivos <ul><li>Gestión del Espacio Libre: </li></ul><ul><li>Cómo encontramos un bloque libre? </li></ul><ul><li>Lista de bloques libres. </li></ul><ul><li>Mapas de bits. </li></ul><ul><li>Lista de bloques y grupos libres. </li></ul>
  31. 31. Sistemas de Archivos
  32. 32. Sistemas de Archivos <ul><li>Mapas de bits: </li></ul><ul><li>1 bit por cada bloque del disco. </li></ul><ul><li>1 para ocupado y 0 para libre. </li></ul><ul><li>Ocupan poco espacio. </li></ul><ul><li>Muy dificil hacer una búsqueda de varios bloques. </li></ul><ul><li>Pobre performance en discos muy llenos. </li></ul>
  33. 33. Sistemas de Archivos <ul><li>Incremento de Prestaciones </li></ul><ul><li>Uso de discos RAM. </li></ul><ul><li>Uso de un caché de datos. </li></ul><ul><ul><li>Caché de nombres. </li></ul></ul><ul><ul><li>Caché de bloques. </li></ul></ul><ul><li>Uso de técnicas de lectura anticipada para optimizar accesos secuenciales. </li></ul>
  34. 34. Sistemas de Archivos <ul><li>Caché de Bloques </li></ul><ul><li>Gestión del Caché. </li></ul><ul><ul><li>Política de Reemplazo (FIFO, MRU, LRU) </li></ul></ul><ul><li>Problemas de consistencia. </li></ul><ul><ul><li>Bloques especiales y bloques de datos. </li></ul></ul><ul><li>Estrategia de actualización. </li></ul><ul><ul><li>Escritura inmediata (write-through) </li></ul></ul><ul><ul><li>Escritura diferida (write-back) </li></ul></ul><ul><ul><li>Escritura retrasada (delayed-write) </li></ul></ul>
  35. 35. Sistemas de Archivos <ul><li>Fiabilidad y Recuperación </li></ul><ul><li>Razones de pérdida de datos. </li></ul><ul><ul><li>Destrucción física. </li></ul></ul><ul><ul><li>Corrupción de datos. </li></ul></ul><ul><li>Prevención de destrucción. </li></ul><ul><ul><li>Copias de seguridad. </li></ul></ul><ul><ul><li>Almacenamiento con redundancia. </li></ul></ul>
  36. 36. Sistemas de Archivos <ul><li>Recuperación del Sistema de Archivos </li></ul><ul><li>Razones de pérdida de consistencia </li></ul><ul><ul><li>Bloques de la cache no actualizados. </li></ul></ul><ul><ul><ul><li>Datos de directorios o i-nodos. </li></ul></ul></ul><ul><ul><ul><li>Datos de programas. </li></ul></ul></ul><ul><li>Al bootear o montar un sistema de archivos. </li></ul><ul><ul><li>Comprobar estructura física del FS. </li></ul></ul><ul><ul><li>Comprobar la estructura lógica del FS. </li></ul></ul>
  37. 37. Sistemas de Archivos <ul><li>Recuperación del Sistema de Archivos </li></ul><ul><ul><li>Comprobar Superbloque. </li></ul></ul><ul><ul><li>Comprobar mapas de bits de i-nodos respecto de los i-nodos ocupados. </li></ul></ul><ul><ul><li>Comprobar mapas de bloques respecto de bloques ocupados. </li></ul></ul><ul><ul><li>Verificar que ningún bloque esté asignado a más de un archivo. </li></ul></ul><ul><ul><li>Verificar que ningún i-nodo esté asignado a más de un directorio. </li></ul></ul>
  38. 38. Sistemas de Archivos <ul><li>Ejemplo </li></ul><ul><li>Para comprobar la consistencia de un sistema de archivos de Unix, el comprobador de consistencia (fsck) construye dos listas de contadores (cada bit mantiene información de un bloque de disco) </li></ul><ul><li>en uso: 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 </li></ul><ul><li>libres: 0 0 0 1 1 1 0 0 0 1 0 1 1 0 1 </li></ul><ul><li>¿Existen errores? ¿Son serios estos errores? ¿Qué acciones correctivas sería necesario realizar sobre la información del sistema de archivos? </li></ul>
  39. 39. Bibliografía <ul><li>Esta clase debe ser ampliada viendo: </li></ul><ul><ul><li>Carretero (1ra. edición): </li></ul></ul><ul><ul><ul><li>Capítulo 8: “Gestión de Archivos y Directorios”. </li></ul></ul></ul><ul><ul><li>Silberschatz (7ma. Edición): </li></ul></ul><ul><ul><ul><li>Capítulo 11: “Sistemas de Archivos”. </li></ul></ul></ul>
  40. 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

×