La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Sistema de Ficheros1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS8 3GESTIÓN DE MEMORIA8 4ENTRADA/SALIDA4 5GESTIÓN DE FICHEROS4 S.O.ITemarioCurso: 04/05.

Presentaciones similares


Presentación del tema: "Sistema de Ficheros1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS8 3GESTIÓN DE MEMORIA8 4ENTRADA/SALIDA4 5GESTIÓN DE FICHEROS4 S.O.ITemarioCurso: 04/05."— Transcripción de la presentación:

1 Sistema de Ficheros1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS8 3GESTIÓN DE MEMORIA8 4ENTRADA/SALIDA4 5GESTIÓN DE FICHEROS4 S.O.ITemarioCurso: 04/05

2 Sistema de Ficheros2 Tema 4.Sistemas de Ficheros INTRODUCCIÓN Aspectos básicos Ficheros Directorios IMPLEMENTACIÓN Aspecto de un Sistema de Ficheros Almacenamiento de ficheros Estructura de los directorios Gestión del espacio en disco Fiabilidad del Sistema de Ficheros Rendimiento del Sistema de Ficheros

3 Sistema de Ficheros3 Introducción Sistema de Ficheros: Organización de la información Directorios Ficheros Gran capacidad Permanente Acceso concurrente y seguro Ficheros Nombre Propietario, Protecciones, Tiempos, Ubicación, Tamaño, Tipo, etc. Contenido Atributos: Operaciones: vs ¿Visible al Usuario? int open(nombre, modo)  Descriptor de Fichero read (df,...), write (df,...), lseek (df,...) stat (df,...), fstat (nombre) close (df) Descripción -rw-r---- 1 pcarazo 2062 14321 May 20 13:52 practica1.c ls -l

4 Sistema de Ficheros4 Introducción dforg = open (“/usr/pepe/uno.txt”, O_RDONLY, 0); dfdst = open (“/tmp/copia.txt”, O_WRONLY | O_CREATE | O_TRUNC, 0600); do { leidos = read (dforg, &buf, 4096); write (dfdst, &buf, leidos); } while (leidos == 4096); close (dforg); close (dfdst); cp /usr/pepe/uno.txt /tmp/copia.txt Otras cuestiones: Organizaciones:Tipo: Normal, Directorio, Octeto, registro, árbol,...Especial, Pipe,... ExtensionesAcceso: Secuencial/Directo

5 Sistema de Ficheros5 Introducción ( Directorios ) Nombre Propietario, Protecciones, Tiempos, Ubicación, Tamaño, Tipo, etc. Atributos: Operaciones: open, read, write, lseek, stat, fstat, close crear, borrar, renombrar,... (Ficheros / Directorios) Descripción Contenido Entradas de Ficheros (Nombre [Descripción]) Estructura: 1 Nivel  Un único directorio 2 Niveles  Un directorio por usuario + Directorio Maestro M Niveles  Árbol de directorios Nombre de ruta: Absoluta vs Relativa Directorio de trabajo (Actual)

6 Sistema de Ficheros6 Implementación ( Aspecto de un Sistema de Ficheros ) BLibresBloques con el contenido de los ficherosDirectorio BootstrapDisco de Arranque SuperbloqueTamaño del disco, # máximo de ficheros,... Nombre1, Descripción1 Nombre2, Descripción2 Nombre3, Descripción3...................................... NombreN, DescripciónN MBRPartición activa

7 Sistema de Ficheros7 Implementación ( Almacenamiento de Ficheros ) Asignación de bloques contiguos vs dispersos 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 12 F2: 4..8 F3: 9..15 F1: 0..3 Pros:Fácil registrar Ubicación (Inicio..Fin) Eficiencia en acceso secuencial y directo Contras: Dificultad para crecer: Crear con el tamaño máximo: desperdicio, ¿se conoce? Buscar un hueco mayor y copiarlo allí Complejo elegir dónde ubicar el fichero: Se borra F2 Se crea F4 (3) F4 4..66..8 ? Políticas similares a gestión de memoria En general Fragmentación Externa Fragmentación Interna

8 Sistema de Ficheros8 1024 Implementación ( Lista encadenada “distribuida” ) 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 12 A A: 6,2 B: 5,12 C: 10,13 BC Pegas:Acceso directo ineficiente (muchos accesos): readByte (A, último)  Bloques 6, 8, 4 y 2 Poca fiabilidad: ¡ Bloque 8 erróneo !  Inaccesibles 4, 2,... Más complejo calcular el acceso directo readByte (A, 3070) y bloques de 1024B 0000101111111110 Bloque lógicoOffset A 8 1022 2B para puntero ¿necesario?

9 Sistema de Ficheros9 X X 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 F.A.T. Tamaño disco A B C ABC Implementación ( Lista encadenada “centralizada global” ) 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 1 FAT 8, 4, 2 9, 12 3, 13 A: 6 B: 5 C: 10 En la descripción del fichero se indica cuál es el primer bloque En la FAT se indica el resto 8 4 2 EOF 3 13 EOF 9 12 FREE BAD Acceso directo muy eficiente si toda la FAT está cargada en M.P. ¿Problemas? Historia de MSDOS ?

10 Sistema de Ficheros10 Implementación ( Lista encadenada “centralizada local” ) 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 1 ABC ABC 2 3 4 5 6 7 8 9 0 1 2 3 4 5 1 FAT 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 C 10 3 13 ¡ Sólo necesario tener en M.P. las FAT de los ficheros abiertos ! ¿Tamaño FAT’s? FAT de 512B, punteros de 2B son 256 punteros ¡Tamaño maximo fichero 256KB! A B C Cada fichero su FAT AsignaciónIndexada ¿Dónde?

11 Sistema de Ficheros11 Implementación ( Bloques de índices encadenados “Unix” ) descripción i-nodo propietario, tamaño, etc. UbicaciónUbicación FAT local de 12 entradas Ptr[0] 1024 Ptr[1] Ptr[11] Ptr_I Bloque de Punteros a datos ¿Cuántos? 4Bytes 256 Ptr_II Ptr_III Ficheros de hasta Leer un byte # accesos 12K1 268K1,2  64M 1..3  16G 1..4 ¿Seguro? hola.txt nombre contenido

12 Sistema de Ficheros12 Implementación ( Estructura de los Directorios ) MSDOS: Ejemplo de disquetes de 360K Lista de 112 entradas de 32B Límite sólo para \ 10 NombreEXTLONG 8314222 Atributos Oculto Sólo lectura Directorio Fecha Hora Primer Bloque FAT ¿Inconveniente de nombre y descripción juntos? FAT1 Bloques con el contenido de ficheros y dir. Directorio Raíz \ FAT2

13 Sistema de Ficheros13 7 ptr directos Ptr_I Ptr_II Ptr_III 64B descripciones 409590 Implementación ( Estructura de los Directorios “UNIX like” ) Bloques ficheros y directorios / inodos 0123 N 512 80 modo # enlaces uid gid tamaño T. acceso T. modificación T. cambio inodo Entradas de 16B inodonombre 214 / 1. 1.. Bootstrap Superbloque inodos libres Bloques libres 2hola.txt nombres ¿Gestión de entradas?

14 Sistema de Ficheros14 Implementación ( Directorios: Nombres de longitud variable ) inodonombre 214 a.out practica.c enUnLugarDeLaMancha.txt ? inodonombre 4 Longitud Total Longitud Nombre 22255 como máximo + \0… Solaris 1055360121.000 819456122..00 10553612414filesystem.txt00 1055362209inode.txt000 1055363167dir.txt0 1055364209fstat.txt000 10553652011opendir.txt0 ¿ rm fstat.txt ? 36

15 Sistema de Ficheros15 Implementación ( Directorios: Ficheros compartidos ) link (“/usr/jim/memo”, “/usr/ast/note”) / usrtmp dev astjim mail games test bin memo f.c prog1 memo note 16 81 40 70 mail games test note /usr/ast 31 70 59 38 bin memo f.c prog1 /usr/jim inodo 70 2 A: compartir nodo + cuántos #enlaces ¿ jim => rm /usr/jim/memo ? ¿ /ast y /jim en S.F. distintos ?

16 Sistema de Ficheros16 Implementación ( Directorios: Ficheros compartidos ) link (“/usr/jim/memo”, “/usr/ast/note”) / usrtmp dev astjim mail games test bin memo f.c prog1 memo note inodo 90 simbólico 16 81 40 90 mail games test note /usr/ast 31 70 59 38 bin memo f.c prog1 /usr/jim B: Enlaces simbólicos modo /usr/jim/memo Ptr[0] ?

17 Sistema de Ficheros17 Implementación ( Gestión del espacio en disco ) Tamaño del bloque: Cilindro – Pista - Sector grande pequeño Fragmentación interna  ¿1/2 bloque por fichero? Peor ajuste al tamaño medio ficheros 1984 (1K)..... 1997 (12K..15K) Baja la velocidad de transferencia Sea: 32.768 Bytes por pista 16,67 mseg de Trotación 30 mseg de Tposicionarse Kbytes/s 1282565121K2K4K8K Tamaño del Bloque 200 150 100 50 0 Lo más habitual 40MB - 160KB - 0,5KB  40GB 3,3 6 % uso disco 100 75 50 25 0 Ficheros de 1K

18 Sistema de Ficheros18 BLibresBloquesDirectorio Disco 20M y bloques de 1K MP MB Para que sea eficiente, debe estar entero en MP Implementación ( Gestión del espacio en disco ) Gestión de bloques libres: Implentar eficientemente: int pedirBloque() y liberarBloque(int) Mantenerse en disco como información permanente 000 11111111 000 11 bloques ocupados bloques libres 01011011 11100011 ------------ Mapa de bits mount sync, umount, shutdown MP Si sólo cabe un bloque en MP, ¿borrar un fichero de 4 bloques? 4..8 accesos a disco

19 Sistema de Ficheros19 MP Implementación ( Gestión del espacio en disco ) Disco de 40GB y bloques de 1K => Mapa de 5MB ¿Todo en M.P.? Lista encadenada distribuida LBLibresDirectorio p u F1 LBLibresDirectorio p u Borrar F1  1 acceso a disco (E) Sin acceder al disco Pedir bloque libre  1 acceso a disco (L)

20 Sistema de Ficheros20 Implementación ( Gestión del espacio en disco ) Lista encadenada centralizada (Bloques de índices libres) LBLibresDirectorio  FAT Sea un disco de 20MB y bloques de 1K  20480 bloques LBLibresBloques (libres / ocupados) 40 41 42204790 39 ¡Formatear! 41,42,43,44,45, ---------------------,20478,20479 Pedir 3 bloques Liberar bloque 41 40,41,42,44,45, ---------------------,20478,2047941,42,4340,41,41,44,45, ---------------------,20478,2047941,42

21 Sistema de Ficheros21 MP 41 42 511 0 Implementación ( Tamaño de la lista de bloques libres ) Con disco de 20MB y bloques de 1K  20480 bloques: Si ptrBloque son 2B  LBLibres = (20439*2)/1024 = 40 bloques LBLibresBloques (libres / ocupados) 40 41 42 20479 0 39 Con un solo bloque en MP hay eficiencia Pido bloque Libero bloque 80 511 500 80 511 512 1023 1 41 1023 41 42 511 0 512 1023 1 19968 20479 39 0 41 1023 1 19968 20479 39 shutdown Ptr 1 er bloque libre 1::1020 Tamaño disco,.... 82B Con 2 ó 3 bloques en MP sí hay eficiencia

22 Sistema de Ficheros22 Implementación ( Fiabilidad ) Fiabilidad: Protección frente a imponderables (Hw / Sw) Problema Bloque erróneo Tratamiento Lista de bloques defectuosos Disco inservible Copias preventivas Hw leve serio S.F. Incoherente Sw ÙÐ þØ dir ¶Ððò Îþõæ š¥žĦťů Restaurar coherencia scandisk fsck

23 Sistema de Ficheros23 Implementación ( Fiabilidad “Copias preventivas” ) Sistemas de volcados Cintas ¡ Lentos y Voluminosos ! Volcados incrementales Volcar cambios desde volcado anterior Un disco lógico y dos físicos Datos0 Copia1 Disco 0 UCP Datos1 Copia0 Disco 1 ¿Mejor? www.exabyte.com Datos Disco 0 UCP Copia Disco 1 160GB a 12MB/seg 999$ ¿ RAID ?

24 Sistema de Ficheros24 Implementación ( Fiabilidad “Consistencia SF” ) Mapa | Lista Nodos Mapa | Lista Bloques I-NodosBloques De bloques LibresOcupados Punteros a bloques L O = E L ∩ O = Ø ∩ ¿Algoritmo? 0 0 0 0 0 0 0 0 0 0 0 0 0123n Bloque Libre Ocupado Casos: 0 1 1 0 coherente 0 0 perdido ? /lost+found 0 2 Repetido libre ? Dejar uno 2 0 Repetido ocupado Replicarlo ? 1 ++ 1

25 Sistema de Ficheros25 Implementación ( Fiabilidad “Consistencia SF” ) De ficheros modo # enlaces uid gid tamaño T. acceso T. modificación T. cambio inodo # enlaces 16 81 40 70 mail games test note /usr/ast 31 70 59 38 bin memo f.c prog1 /usr/jim inodo 70 2 #enlaces ¿Algoritmo? OK 000000 0123n Nodo # entradas 70 0 Recorrer SF 1 ++ 2 Recorrer nodos: #entradas = #enlaces

26 Sistema de Ficheros26 Implementación ( Rendimiento: Caché de bloques ) L3L2 L1I L1D UCP 1,6 GHz MP 1 615 Caché bloques Viable LRU Reciente (MRU) Antiguo (LRU) ? Búsqueda rápida Tabla hash Tipos de bloques: nodo-i, ptr, datos sync + update Cache transparente W

27 Sistema de Ficheros27 Implementación ( Rendimiento: otras mejoras ) Leer (traer a cache) por adelantado “prefetch” Asignar bloques contiguos a ficheros: zona = n bloques Ubicación de inodos más distribuida


Descargar ppt "Sistema de Ficheros1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS8 3GESTIÓN DE MEMORIA8 4ENTRADA/SALIDA4 5GESTIÓN DE FICHEROS4 S.O.ITemarioCurso: 04/05."

Presentaciones similares


Anuncios Google