La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Gestión de Procesos1 Horas 1INTRODUCCIÓN4 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA9 4ENTRADA/SALIDA1 5SISTEMA DE FICHEROS4 sisOpeTemarioCurso: 14/15.

Presentaciones similares


Presentación del tema: "Gestión de Procesos1 Horas 1INTRODUCCIÓN4 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA9 4ENTRADA/SALIDA1 5SISTEMA DE FICHEROS4 sisOpeTemarioCurso: 14/15."— Transcripción de la presentación:

1 Gestión de Procesos1 Horas 1INTRODUCCIÓN4 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA9 4ENTRADA/SALIDA1 5SISTEMA DE FICHEROS4 sisOpeTemarioCurso: 14/15

2 Sistema de Ficheros2 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

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

4 Sistema de Ficheros4 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 (nombre,...), fstat (df, …) close (df) Descripción -rw-r---- 1 pcarazo 2062 14321 May 20 13:52 practica1.c ls -l

5 Sistema de Ficheros5 Introducción 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); cp /usr/pepe/uno.txt /tmp/copia.txt Otras cuestiones: Organizaciones:Tipo: Normal, Directorio, Octeto, registro, árbol,...Especial, Pipe,... ExtensionesAcceso: Secuencial/Directo

6 Sistema de Ficheros6 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)

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

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

9 Sistema de Ficheros9 Hola.txt df := open (“Hola.txt”, “r”); Pi df := open (“Hola.txt”, “r”); Pj 012N33012N Tabla Global del Sistema Introducción ( El df con acceso concurrente ) 012M21012M + Tablas Locales de Descriptores ? 01 2 ContAperturas sysconf (_SC_OPEN_MAX)

10 Sistema de Ficheros10 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 ¡Bloques lógicos: 0..N!vs Cilindro, Pista y Sector

11 Sistema de Ficheros11 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 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 df = open (“F3”, ….) lseek (df, 2051, …) read(df, &buffer, 1) Bloque 1024B

12 Sistema de Ficheros12 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?

13 Sistema de Ficheros13 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 ?

14 Sistema de Ficheros14 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?

15 Sistema de Ficheros15 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

16 Sistema de Ficheros16 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

17 Sistema de Ficheros17 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?

18 Sistema de Ficheros18 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 ¿ open (archivo, …) ?

19 Sistema de Ficheros19 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 enunciadolinealtiempo artificio baluarte figura gazapo ilustre origen ranura zafio velo

20 Sistema de Ficheros20 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 ?

21 Sistema de Ficheros21 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] ?

22 Sistema de Ficheros22 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

23 Sistema de Ficheros23 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

24 Sistema de Ficheros24 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)

25 Sistema de Ficheros25 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

26 Sistema de Ficheros26 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

27 Sistema de Ficheros27 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

28 Sistema de Ficheros28 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.hp.com Datos Disco 0 UCP Copia Disco 1 1,5..3TB a 140MB/seg 2499$ ¿ RAID ? 4+4  5749$ “The hot new storage technology for 2011 is… tape?”

29 Sistema de Ficheros29 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 2 0 Repetido libre ? Dejar uno 0 2 Repetido ocupado Replicarlo ? 1 ++ 1

30 Sistema de Ficheros30 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

31 Sistema de Ficheros31 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

32 Sistema de Ficheros32 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 "Gestión de Procesos1 Horas 1INTRODUCCIÓN4 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA9 4ENTRADA/SALIDA1 5SISTEMA DE FICHEROS4 sisOpeTemarioCurso: 14/15."

Presentaciones similares


Anuncios Google