La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

sisOpe Temario Curso: 17/18

Presentaciones similares


Presentación del tema: "sisOpe Temario Curso: 17/18"— Transcripción de la presentación:

1 sisOpe Temario Curso: 17/18
Horas INTRODUCCIÓN 6 PROCESOS Y THREADS 9 GESTIÓN DE MEMORIA 8 ENTRADA/SALIDA 0 SISTEMA DE FICHEROS 4 Gestión de Procesos

2 Tema 5. Sistema 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 Sistema de Ficheros

3 Introducción Directorios
Sistema de Ficheros: Organización de la información Directorios Ficheros Gran capacidad Permanente Acceso concurrente y seguro 10MB  2TB Sistema de Ficheros

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

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

6 Introducción ( Directorios )
Descripción Atributos: Operaciones: Nombre Propietario, Protecciones, Tiempos, Ubicación, Tamaño, Tipo, etc. Contenido Entradas de Ficheros (Nombre [Descripción]) open, read, write, lseek, stat, fstat, close crear, borrar, renombrar, ... (Ficheros / Directorios) 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) Sistema de Ficheros

7 Introducción ( El descriptor de fichero )
Una forma muy habitual de guardar un fichero en disco es la siguiente: ls –i Hola.txt 80 Hola.txt Hola.txt Nombre Descripción Contenido df := open (“Hola.txt”, “r”); búsqueda Bloques de Datos Inodo Directorio M.P. Por eficiencia, se carga su descripción en memoria S.O. 1..max 80 Tabla de Ficheros Abiertos 1 2 N 33 posición ¿Acceso concurrente? Sistema de Ficheros

8 Introducción ( El df con acceso concurrente )
df := open (“Hola.txt”, “r”); Pj df := open (“Hola.txt”, “r”); Pi Hola.txt 1 2 N 33 posición ¡Compartir el df es compartir la posición! ¡Coherencia de la descripción del fichero! Sistema de Ficheros

9 Introducción ( El df con acceso concurrente )
Hola.txt df := open (“Hola.txt”, “r”); Pi Pj 1 2 N 33 Tabla Global del Sistema 2 1 2 M 21 + Tablas Locales de Descriptores ? ContAperturas 1 sysconf (_SC_OPEN_MAX) Sistema de Ficheros

10 Implementación ( Aspecto de un Sistema de Ficheros )
MBR Partición activa ¡Bloques lógicos: 0..N! vs Cilindro, Pista y Sector BLibres Bloques con el contenido de los ficheros Directorio Bootstrap Disco de Arranque Superbloque Tamaño del disco, # máximo de ficheros, ... Nombre1, Descripción1 Nombre2, Descripción2 Nombre3, Descripción3 NombreN, DescripciónN Sistema de Ficheros

11 Implementación ( Almacenamiento de Ficheros )
Asignación de bloques contiguos vs dispersos En general F1: 0..3 1 2 F4 4..6 F2: 4..8 F3: 9..15 6..8 ? Fragmentación Interna Fragmentación Externa Pros: Fácil registrar Ubicación (Inicio..Fin) Eficiencia en acceso secuencial y directo df = open (“F3”, ….) lseek (df, 2051, …) read(df, &buffer, 1) Bloque 1024B Contras: Dificultad para crecer: Crear con el máximo: desperdicio, ¿se conoce? Buscar un hueco mayor y copiarlo allí Se borra F2 Se crea F4 (3) Complejo elegir dónde ubicar el fichero: Políticas similares a gestión de memoria Sistema de Ficheros

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

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

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

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

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

17 Implementación ( Estructura de los Directorios )
sisope01 sisope02 sisope32 sisope33 sisope34 sisope64 sisope65 sisope66 sisope96 PrácticasSisOpe sisope01 xxxxxxxxxx sisope02 xxxxxxxxxx sisope96 xxxxxxxxxx ? sisope01 sisope02 sisope78 sisope79 sisope80 sisope96 Sistema de Ficheros

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

19 Implementación ( Directorios: Nombres de longitud variable )
? a.out practica.c enUnLugarDeLaMancha.txt inodo nombre 2 14 inodo nombre 4 Longitud Total Nombre 2 255 como máximo + \0… Solaris 12 1 .000 819456 2 ..00 24 14 filesystem.txt00 20 9 inode.txt000 16 7 dir.txt0 fstat.txt000 11 opendir.txt0 ¿ rm fstat.txt ? 36 ¿ open (archivo, …) ? Sistema de Ficheros

20 Implementación ( Directorios: Nombres de longitud variable )
open (“ranura”, ….) enunciado origen zafio baluarte gazapo tiempo artificio velo figura lineal ranura ilustre enunciado origen zafio baluarte gazapo tiempo artificio velo figura lineal ranura ilustre enunciado lineal tiempo artificio baluarte figura gazapo ilustre origen ranura zafio velo 6,5 3,1 ¿ Medias ? Sistema de Ficheros

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

22 Implementación ( Directorios: Ficheros compartidos )
/ usr tmp dev ast jim mail games test bin memo f.c prog1 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] memo note link (“/usr/jim/memo”, “/usr/ast/note”) ? Sistema de Ficheros

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

24 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 BLibres Bloques Directorio 1 11 11111 000 bloques ocupados bloques libres mount sync, umount, shutdown Mapa de bits MP MB Para que sea eficiente, debe estar entero en MP Disco 20M y bloques de 1K 4..8 accesos a disco MP Si sólo cabe un bloque en MP, ¿borrar un fichero de 4 bloques? Sistema de Ficheros

25 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 F1 LBLibres Directorio p u MP LBLibres Directorio p u Borrar F1  1 acceso a disco (E) Pedir bloque libre  1 acceso a disco (L) Sin acceder al disco Sistema de Ficheros

26 Implementación ( Gestión del espacio en disco )
Lista encadenada centralizada (Bloques de índices libres)  FAT LBLibres Directorio Sea un disco de 20MB y bloques de 1K  bloques LBLibres Bloques (libres / ocupados) 20479 41,42,43,44,45, ,20478,20479 ¡Formatear! 40,41,42,44,45, ,20478,20479 41,42,43 Pedir 3 bloques 40,41,41,44,45, ,20478,20479 41,42 Liberar bloque 41 Sistema de Ficheros

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

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

29 Implementación ( Fiabilidad “Copias preventivas” )
4+4 7700$ Sistemas de volcados Cintas ¡ Lentos y Voluminosos ! 6,25 TB a 400MB/seg ..50$ “The hot new storage technology for 2011 is… tape?” Volcados incrementales Volcar cambios desde volcado anterior Un disco lógico y dos físicos Datos Disco 0 UCP Copia Disco 1 Datos0 Copia1 Disco 0 UCP Datos1 Copia0 Disco 1 ¿Mejor? ¿ RAID ? Sistema de Ficheros

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

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

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

33 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 Sistema de Ficheros


Descargar ppt "sisOpe Temario Curso: 17/18"

Presentaciones similares


Anuncios Google