Módulo D - Tema 9

Gestión de Disco

Bibliografía:
•Silberschatz, A. “Sistemas Operativos 7ª”. Wiley •Stallings, W. “Sistemas Operativos 6ª”. Pearson •Carretero, y otros. “Sistemas Operativos”. Mc Graw Hill.

Rafael Menéndez de Llano Rozas - Universidad de Cantabria (C) 2009

Índice
• Introducción: niveles de abstracción.
• Hardware.
– – – – – – – – – – – – – – – Disco Duro. Sistemas Ópticos. Compact Flash. Formato. Swap.

• • •

Planificación y control.

E/S Dispositivo y Organización Física. Sistema de ficheros.
Traducción de direcciones. Cache de disco.

Algoritmos de planificación. Errores.

Gestión de directorios.

Formateo lógico y Particiones. Asignación de Espacio y gestión de espacio libre. Tipo de acceso. Sistema de Ficheros Virtual. Estructuras del kernel. Tipos de ficheros. Protección de ficheros. Información contenida y estructura de directorios.
2

Grupo de Arquitectura y Tecnología de Computadores – Universidad de Cantabria RMЯ

Estructura lógica de la E/S
• • La estructura de E/S para disco está estructurada en los niveles de la derecha. Resumiendo de mayor a menor abstracción:
1. Gestión de directorios.
• • En este nivel se tratan los nombres simbólicos para trabajar con ficheros que se traducen a identificadores. También se realizan operaciones sobre directorios: añadir, borrar, reorganizar. Se trata la estructura lógica del fichero. Se realizan las operaciones que se pueden hacer con ficheros: abrir, cerrar, leer, escribir, … Los derechos de acceso. Las operaciones se convierten en mandatos al controlador o al canal. Se traducen las referencias lógicas a los ficheros por referencias físicas: pistas, sectores, … Se maneja los bufferes y caches que existan en memoria principal.

2.

Sistema de ficheros.
• • •

3.

E/S de dispositivo y Organización física.
• • •

4. 5.

Planificación y Control. Se gestiona la cola de E/S y se controla la operación por lo que se trabaja con las interrupciones y estado del controlador de dispositivo. Hardware.
3

Grupo de Arquitectura y Tecnología de Computadores – Universidad de Cantabria RMЯ

Rafael Menéndez de Llano Rozas - Universidad de Cantabria (C) 2009

Índice
• • Introducción: niveles de abstracción. Hardware.
– – – Disco Duro. Sistemas Ópticos. Compact Flash.

• • •

– Formato. – Swap. Planificación y control.
– – – – – – – – – –

E/S Dispositivo y Organización Física. Sistema de ficheros.
Traducción de direcciones. Cache de disco.

Algoritmos de planificación. Errores.

Gestión de directorios.

Formateo lógico y Particiones. Asignación de Espacio y gestión de espacio libre. Tipo de acceso. Sistema de Ficheros Virtual. Estructuras del kernel. Tipos de ficheros. Protección de ficheros. Información contenida y estructura de directorios.
4

Grupo de Arquitectura y Tecnología de Computadores – Universidad de Cantabria RMЯ

1. Disco Duro: Formato Bajo Nivel
• Antes de usar el disco duro debemos dar el formato en sectores para que la controladora los pueda leer y escribir. • Por cada sector se escribe:
– Una cabecera. – Un área de datos (típicamente 512 bytes). – Una cola.

• La cabecera y la cola contienen información del número de sector y el código corrector de errores ECC que se actualiza cada vez que escribimos el sector.
– Cada vez que se lee se calcula el ECC y se compara con el almacenado. Si es diferente el sector está corrompido. – Con el ECC también podemos recuperar un error (blando).

• En el formateo a bajo nivel también se puede variar el tamaño del área de datos (256, 512, 1024).
– Si aumenta debemos saber que el número de sectores por pista disminuye y por tanto también que el número de cabeceras y colas a gestionar es menor. Luego habrá más datos para el usuario. – Pero también más fragmentación interna.
Grupo de Arquitectura y Tecnología de Computadores – Universidad de Cantabria RMЯ

5

Rafael Menéndez de Llano Rozas - Universidad de Cantabria (C) 2009

1. Disco Duro: Formato
• El sistema necesita almacenar la información del formateo para albergar un sistema de ficheros en el propio disco duro. • Se siguen dos pasos:
– Particionado (fdisk):
• Se divide el disco duro en grupos de cilindros. • El S.O. puede tratar a cada partición de distinta manera (distintos discos).

– Formateo lógico por cada partición (format, mkfs):
• Se almacenan las estructuras de datos iniciales como espacio libre y ocupado. • Ejemplos: tablas FAT o sistemas de inodos.

– En algunos casos la partición se presenta al S.O. sin formateo lógico (disco en bruto) como un conjunto de bloques sin estructura, para que programas especiales como bases de datos hagan uso de él de forma más eficiente. – Un caso especial es la gestión del swap.
Grupo de Arquitectura y Tecnología de Computadores – Universidad de Cantabria RMЯ

6

1. Disco Duro: Swap
• El disco duro se usa como soporte de la memoria secundaria, antes para intercambiar procesos completos y actualmente para intercambiar páginas. • La cantidad necesaria va en función de la memoria física y virtual disponible y del uso que hagamos de ella:
– Usualmente se sobreestima, ya que quedarse sin intercambio suele ser desastroso. – Solaris recomienda que se reserve hasta alcanzar con la memoria física la virtual. – Linux sugiere el doble de la memoria física.

• Ayuda bastante al rendimiento dividir el espacio de intercambio entre los discos disponibles, ya que por tanto su acceso se puede hacer en paralelo (estilo RAID). • Puede ubicarse en dos sitios:
– Estilo Windows. Dentro del espacio de ficheros se dedica uno de gran tamaño al intercambio (page.sys) – Estilo UNIX. Se dedica una partición completa a este fin.
• Es fácil de implementar (es un fichero) pero poco eficiente.

• La partición no tiene formato y se utiliza un gestor de almacenamiento para asignar y desasignar bloques primando la velocidad y sufriendo en parte fragmentación interna.
7

Grupo de Arquitectura y Tecnología de Computadores – Universidad de Cantabria RMЯ

Rafael Menéndez de Llano Rozas - Universidad de Cantabria (C) 2009

1. Swap: Ejemplos
• Solaris 1:
– – Se carga el texto del programa completo y después por paginación puede haber páginas de este segmento que se desechen. Si se tienen que traer de nuevo se hace desde el fichero ejecutable. El espacio de intercambio se reserva para los segmentos de datos que van evolucionando y cambiando y que no se podrían traer del ejecutable.

Linux:
– –

Permite elegir entre un fichero o una partición para el intercambio. El área de intercambio está formado por “ranuras” de 4KB que se utilizan para cargar páginas. Cada área lleva asociado un mapa de intercambio que es un conjunto de contadores correspondientes a cada ranura.

• Si el contador es cero la ranura está disponible. • Si es mayor que cero está ocupada. El número indica los procesos a los que pertenece esa página (memoria compartida).

Grupo de Arquitectura y Tecnología de Computadores – Universidad de Cantabria RMЯ

8

Índice
• • Introducción: niveles de abstracción. Hardware.
– – – – – – – – – – – – – – – Disco Duro. Sistemas Ópticos. Compact Flash. Formato. Swap.

• Planificación y control.
• •

E/S Dispositivo y Organización Física. Sistema de ficheros.
Traducción de direcciones. Cache de disco.

Algoritmos de planificación. Errores.

Gestión de directorios.

Formateo lógico y Particiones. Asignación de Espacio y gestión de espacio libre. Tipo de acceso. Sistema de Ficheros Virtual. Estructuras del kernel. Tipos de ficheros. Protección de ficheros. Información contenida y estructura de directorios.
9

Grupo de Arquitectura y Tecnología de Computadores – Universidad de Cantabria RMЯ

Rafael Menéndez de Llano Rozas - Universidad de Cantabria (C) 2009

1. Disco Duro: Ejemplo
• Tenemos un fichero que consta de 2500 sectores (512b → 1.22 MB) ¿Cuánto se tarda en leerlo?
– Tiempo de búsqueda: 4 ms. – Velocidad rotación: 7500 rpm (125 rps). – 500 sectores / pista (geometría). 2500 / 500 = 5 pistas. 1. Si están consecutivos:
– – – Ts = 4 ms. Latencia = 1 vuelta cada 8ms. /2 = 4 ms. Tpista = 8 ms. Total primera pista = 16ms. Las otras no tendrán búsqueda: 4 x (4 + 8) = 48 ms. Total serán: 16 + 48 = 64 ms. Ts = 4 ms. Latencia = 4ms. Tsector = 8ms/500 = 16 µs Total = (4 + 4 + 0,016) * 2500 = 20040 ms. !!!!!

2.

Si estuvieran repartidos por el disco:
– –

313 veces más.
10

Grupo de Arquitectura y Tecnología de Computadores – Universidad de Cantabria RMЯ

2. Planificación y control
• Con este sencillo ejemplo hemos visto como es necesario una planificación del disco, minimizando el tiempo de búsqueda (movimiento de la cabeza). • La primera familia hace referencia al que hace la petición:
– RSS: En orden aleatorio (random). No tiene ningún valor y se utiliza simplemente como comparación con otros métodos. En simulación de métodos. – FIFO: El primero en entrar el primero en salir. Más justo. – PRI (prioridades): Es independiente del sistema de E/S y se trata de cumplir con otros objetivos del sistema.
• Por ejemplo que los trabajos cortos se hagan antes que los largos. Incluso podría suceder que se usara poco eficientemente el disco.

– LIFO: Se basa en coger al último, ya que posiblemente la petición sea consecutiva (secuencial) y haya menos tiempo de búsqueda.
• Hay posibilidad de inanición.

Grupo de Arquitectura y Tecnología de Computadores – Universidad de Cantabria RMЯ

11

Rafael Menéndez de Llano Rozas - Universidad de Cantabria (C) 2009

2. Planificación y control
• Al igual que se hace con memoria, para unas referencias a pistas de (empezando en la 100):
– 55 58 39 18 90 160 150 38 184 – Para un algoritmo FIFO tendremos el tiempo expresado en la figura (en abscisas el tiempo -proporcional a la distancia de recorrido del brazo- y en ordenadas el número de pista):
• Las distancias son: 45 3 19 21 72 70 10 112 146. • La media es 55.3.

Grupo de Arquitectura y Tecnología de Computadores – Universidad de Cantabria RMЯ

12

2. Planificación y control
• La segunda familia hace referencia al tipo de petición:
– SSTF (short service time first): El primero será el de tiempo más corto (el que requiera menor desplazamiento de las cabezas). Hay que tener presente dónde está la cabeza ahora. – Se busca siempre el tiempo mínimo en el siguiente desplazamiento pero no se garantiza el tiempo medio mínimo.
• Mismo string: 55 58 39 18 90 160 150 38 184 • Las distancias son: 10 32 3 16 1 20 132 10 24. • La media es 27.5.

Grupo de Arquitectura y Tecnología de Computadores – Universidad de Cantabria RMЯ

13

Rafael Menéndez de Llano Rozas - Universidad de Cantabria (C) 2009

2. Planificación y control
• La segunda familia hace referencia al tipo de petición:
– SCAN (Ascensor): Al igual que en FIFO se trata de evitar la inanición. El brazo va en una dirección satisfaciendo las peticiones que encuentre a su paso hasta que no haya ninguna, entonces la cabeza cambia de sentido – Se parece al SSTF pero en este caso no se tienen en cuenta localidades temporales (no se favorece lo que se ha atravesado).
• Mismo string: 55 58 39 18 90 160 150 38 184. • Las distancias son: 50 10 24 94 32 3 16 1 20. • La media es 27.8.

Grupo de Arquitectura y Tecnología de Computadores – Universidad de Cantabria RMЯ

14

2. Planificación y control
• La segunda familia hace referencia al tipo de petición:
– C-SCAN (circular): Igual que SCAN pero para no favorecer a los “bordes” cada vez que se llega al final se vuelve al principio, no se cambia de sentido (reset). – Si no va hasta el final sino hasta la última petición es LOOK (con SSTF se suele usar en la práctica). – El tiempo de peor caso para SCAN era de 2t en este caso es t + reset (volver al principio) que es menor.
• Mismo string: 55 58 39 18 90 160 150 38 184. • Las distancias son: 50 10 24 166 20 1 16 3 32. • La media es: 35.8 .

LOOK

Grupo de Arquitectura y Tecnología de Computadores – Universidad de Cantabria RMЯ

15

Rafael Menéndez de Llano Rozas - Universidad de Cantabria (C) 2009

2. Planificación y control
• La segunda familia hace referencia al tipo de petición:
– SCAN N pasos: Puede ocurrir que en un momento dado haya muchas peticiones hacia una misma pista. Esto haría con SSTF y SCAN que el brazo no se moviera de esas pistas.
• Para evitar eso se hace que la cola se divida en N subcolas. En cada momento sólo se procesa una subcola con SCAN, las peticiones que lleguen se pasan a otra cola. • Si se usan sólo dos colas estamos en una política FSCAN.

• Otra forma de mejorar el rendimiento/fiabilidad del disco es utilizar varios discos o bien de manera independiente o bien en paralelo: RAID.
– Existen siete niveles con distintas configuraciones que se suelen usar el sistemas de bases de datos.
Grupo de Arquitectura y Tecnología de Computadores – Universidad de Cantabria RMЯ

16

2. Planificación y control
• En Berkley (87) se demostró que un conjunto de discos pequeños y baratos era igual de potente que uno más caro y grande del mismo tamaño global. El problema es que al haber muchos discos, la probabilidad de fallo (MTBDL) aumentaba proporcionalmente al número de discos, por ello se combinaron de forma redundante para evitar la pérdida de datos. Se definen varios niveles de redundancia (es difícil encontrarles puros en la práctica):
– RAID 0: Sin redundancia, los datos Ai se reparten en paralelo (stripping). Así una petición puede acceder a varios discos en paralelo. En JBOD simplemente se concatenan. RAID 1: Se copian los datos en otro disco (mirror). Los datos se pueden leer en paralelo. Ej. A1 y A2 RAID 2: Se dividen los datos a nivel de bit y se usa Hamming para corrección de errores. Se necesitarían 32+7 discos. No se usa.
17

– –

Grupo de Arquitectura y Tecnología de Computadores – Universidad de Cantabria RMЯ

Rafael Menéndez de Llano Rozas - Universidad de Cantabria (C) 2009

2. Planificación y control
• Se definen varios niveles de redundancia:
– En ambos casos se dedica un disco completo a la redundancia (cuello de botella).
• RAID 3: Se reparte la información entre los discos a nivel de byte y se dedica uno a la paridad para corrección de errores. Se usa muy poco ya que B debería esperar a A. • RAID 4: Lo mismo que 3 pero a nivel de bloque. Se genera una paridad por strip.
Grupo de Arquitectura y Tecnología de Computadores – Universidad de Cantabria RMЯ

18

2. Planificación y control
• Se definen varios niveles de redundancia:
– RAID 5: Se reparten los datos y la paridad entre todos los discos. La paridad se calcula por hardware. – Si falla un disco se puede seguir funcionando, si fallan dos discos el sistema falla.
• Se deduce de lo leído en otros discos y la paridad.

– La paridad se actualiza en cada escritura.
Grupo de Arquitectura y Tecnología de Computadores – Universidad de Cantabria RMЯ

19

Rafael Menéndez de Llano Rozas - Universidad de Cantabria (C) 2009

2. Planificación y control: Errores
• Cuando se hace el formateo a bajo nivel pueden aparecer sectores defectuosos.
1. En sistemas simples se marcan estos sectores como erróneos para que no sean accedidos . 2. En sistemas más avanzados en el formateo de bajo nivel se crean dos listas de sectores:
• Sectores defectuosos. Se crea en la inicialización del sistema. Y se va actualizando durante la vida del disco • Reserva de sectores. Son sectores no visibles al S.O. que sustituirán a los defectuosos.

– De esta manera la controladora sabrá que sectores sustituir de forma lógica. – Para no interferir en la planificación del disco, está lista de sectores de reserva se crea en cada cilindro y también se reserva un cilindro entero.
• En caso de error, el sector defectuoso se intenta reemplazar por uno del mismo cilindro (pista).

3. Otro tipo de técnica es desplazar todos los sectores del disco desde el defectuoso hasta el más próximo de reserva.
Grupo de Arquitectura y Tecnología de Computadores – Universidad de Cantabria RMЯ

20

Índice
• • Introducción: niveles de abstracción. Hardware.
– – – – – – – – – – – – – – – Disco Duro. Sistemas Ópticos. Compact Flash. Formato. Swap.

• •

Planificación y control.

E/S Dispositivo y Organización Física.
Traducción de direcciones. Cache de disco.

Algoritmos de planificación. Errores.

NO

• Sistema de ficheros.

Gestión de directorios.

Formateo lógico y Particiones. Asignación de Espacio y gestión de espacio libre. Tipo de acceso. Sistema de Ficheros Virtual. Estructuras del kernel. Tipos de ficheros. Protección de ficheros. Información contenida y estructura de directorios.
21

Grupo de Arquitectura y Tecnología de Computadores – Universidad de Cantabria RMЯ

Rafael Menéndez de Llano Rozas - Universidad de Cantabria (C) 2009

4. Sistema de ficheros: FAT
• Una vez realizadas las particiones del disco se procede al formateo lógico, creándose un volumen. • Actualmente sólo se usa en discos extraíbles como disquetes o flash. • El sistema de archivos FAT se compone de cuatro secciones:
1. El sector de arranque. Siempre es el primer sector de la partición. 2. La región FAT. Contiene dos copias de la tabla de asignación de archivos (seguridad). Son mapas de la partición, indicando qué clusters están ocupados por los ficheros.

3. La región del directorio raíz. El directorio raíz ocupa una posición concreta en el sistema de ficheros, pero los índices de otras carpetas ocupan la zona de datos como cualquier otro fichero.

• El tamaño del clúster depende de la variante de FAT utilizada (entre 2 y 32 kilobytes). Cada fichero ocupa uno o más clusters en función de su tamaño y queda representado por una cadena secuencial de clusters que no tienen por qué ser adyacentes.

4. La región de datos. Es el lugar donde se almacena el contenido de ficheros y carpetas. Por tanto, ocupa casi toda la partición.
Grupo de Arquitectura y Tecnología de Computadores – Universidad de Cantabria RMЯ

• Este índice es un tipo especial de fichero que almacena las sub-carpetas y ficheros que componen cada carpeta. Cada entrada del directorio contiene el nombre del fichero o carpeta (máximo 8 caracteres), su extensión (máximo 3 caracteres), sus atributos (archivo, carpeta, oculto, del sistema, o volumen), la fecha y hora de creación, la dirección del primer cluster donde están los datos, y por último, el tamaño que ocupa.

22

4. Sistema de ficheros: NTFS
• Trabaja con cluster que son conjuntos de sectores de disco. • Cada cluster está numerado de forma lógica (como LBA). • Los archivos son objetos sobre los que se pueden hacer operaciones incluyendo la de leer o escribir sus datos. • Existe una tabla maestra de archivos llamada MFT (tratada como un fichero especial) que contiene una matriz donde están los registros que definen a los ficheros. • Si los ficheros son pequeños (pocos registros) puede caber en la matriz (atributos residentes) en otro caso se almacenan a continuación (no residentes). • Cada archivo tiene un número de identificación único llamado referencia. • Utiliza una estructura de árbol-B+. • Tiene implementado un mecanismo de journaling (transacciones).
Grupo de Arquitectura y Tecnología de Computadores – Universidad de Cantabria RMЯ

23

Rafael Menéndez de Llano Rozas - Universidad de Cantabria (C) 2009

4. Sistema de ficheros: UFS y otros
• Un sistema de archivos UFS se compone de las siguientes partes:
– Bloque al inicio de la partición reservados para el arranque. – Un superbloque que contiene la información necesaria para montar un sistema de archivos, incluidos el tamaño del F.S., el número de nodos libres y la información relativa al espacio disponible en disco. – Una colección de grupos de cilindros, cada grupo de cilindros tiene estos componentes:
• Un respaldo del superbloque. • Una cabecera de cilindro, con estadísticas, lista de espacio libre, etc. acerca de este bloque de cilindros, similar a los que se encuentran en el superbloque. • Inodos, cada cual conteniendo los metadatos del archivo. Los inodos son identificados numéricamente. • Bloques de datos.

• Ext2 fue una versión desde cero de UFS para Linux:
– Los grupos de cilindros son sustituidos por grupos de bloques que contienen: superbloque, un mapa de bloques, mapa de inodos y bloques de datos.

• Ext3 es la nueva versión de la dos que incluye journaling (diario de transacciones), árboles AVL y asignador derivado de Orlov. • Ext4 compatible con ext3 pero para 1024 PB.
Grupo de Arquitectura y Tecnología de Computadores – Universidad de Cantabria RMЯ

24

4. Sistema de ficheros: Asignación
• • • Una vez que tenemos el volumen creado, la siguiente cuestión a resolver es como asignamos los bloques libres a los ficheros para que se usen de forma eficiente. Esto estará relacionado con el método de gestión del espacio libre y la estructura del fichero. Hay varios aspectos a tener en cuenta:
– – – Preasignación. Si usamos preasignación, el tamaño del fichero debe ser declarado de antemano. Claras desventajas por eso se usa asignación dinámica. Tamaño de porción (conjunto de bloques dados). Puede ser grande o pequeño (un bloque). Problemas similares al tamaño de página. Porción fija o variable. Interactúa con el anterior. Si son fijas suelen ser de tamaño de bloque. Si son variables suelen ser de tamaño grande y además se aplican técnicas de gestión de espacio libre (ajustes de particiones).

Dependiendo de las opciones elegidas podremos tener definidos otros parámetros:
– Frecuencia. Número de veces que pedimos asignación – Tiempo. Tiempo que se tarda en esta asignación – Tamaño de tabla. Resultante para mantener las asignación a ficheros. Hay tres métodos fundamentales: Asignación contigua, Asignación enlazada, Asignación indexada.
25

Grupo de Arquitectura y Tecnología de Computadores – Universidad de Cantabria RMЯ

Rafael Menéndez de Llano Rozas - Universidad de Cantabria (C) 2009

4. Sistema de ficheros: Asignación
• En la asignación contigua los bloques de la porción deben esta contiguos (dirección lineal) lo que supone un movimiento mínimo del cabezal.

– Se utiliza preasignación, con porción variable y grande. – La frecuencia es de una vez y el espacio requerido en la tabla es de una entrada. – Para definir un fichero basta con dar el bloque inicial y el tamaño de la porción. – Puede ser difícil encontrar sitio para un nuevo fichero. – Se produce fragmentación externa que debe ser evitado con las técnica habituales pero que son muy costosas. – La ventaja de este sistema es que el movimiento de cabezas es mínimo (muy rápido).
26

Grupo de Arquitectura y Tecnología de Computadores – Universidad de Cantabria RMЯ

4. Sistema de ficheros: Asignación
• En la asignación enlazada cada fichero es una lista enlazada de bloques.
– La porción es de tamaño fijo y mínimo (bloque). El tiempo de asignación es alto (recorrer). – La frecuencia es alta y el espacio requerido en la tabla es de una entrada. – Para definir un fichero basta con dar el bloque inicial y el tamaño (o fin) del fichero. – Es fácil encontrar sitio y no hay fragmentación externa. – Está orientado para el acceso secuencial.
Grupo de Arquitectura y Tecnología de Computadores – Universidad de Cantabria RMЯ

27

Rafael Menéndez de Llano Rozas - Universidad de Cantabria (C) 2009

4. Sistema de ficheros: Asignación
• Un ejemplo de asignación enlazada es la FAT. • La tabla está ordenada por número de grupo de bloques (cluster). • En cada entrada se almacena el cluster siguiente perteneciente al fichero. • El acceso a un fichero puede provocar movimiento en la cabeza del disco a no ser que se almacene la FAT en memoria.
Grupo de Arquitectura y Tecnología de Computadores – Universidad de Cantabria RMЯ

28

4. Sistema de ficheros: Asignación
• En la asignación indexada todos los índices de un fichero en vez de estar dispersos en cada bloque se agrupan en una especie de FAT llamado bloque de índices. • Cada archivo tiene un bloque de índices y funciona como la tabla de páginas. • En este caso tenemos fragmentación interna en el bloque índice. • ¿Qué ocurre si el fichero es más grande que las entradas que caben en un bloque?
Grupo de Arquitectura y Tecnología de Computadores – Universidad de Cantabria RMЯ

29

Rafael Menéndez de Llano Rozas - Universidad de Cantabria (C) 2009

4. Sistema de ficheros: Asignación
Soluciones:
– Enlazado: Dentro del bloque índice se dan las direcciones de los bloques y si se necesitan más se da la dirección de otro bloque índice. Multinivel: Un bloque índice de primer nivel apunta a bloques índice de segundo nivel que apuntan a bloques de datos. Combinada. Se utiliza en UFS. Hay un bloque índice que contiene metadatos del fichero y además 13 punteros:
• • • • 10 directos a bloques de datos. 1 a un bloque índice de primer nivel. 1 a uno de segundo nivel. 1 a uno de tercer nivel.

– –

Para un tamaño de bloque de 1K:
Entrada 10 entradas directas 1 entrada simple 1 entrada doble 1 entrada triple Bloques 10 256 256 x 256 256 x 256 x 256 Bytes 10 K 256 K 64 M 16 G

Grupo de Arquitectura y Tecnología de Computadores – Universidad de Cantabria RMЯ

30

4. Asignación indexada combinada: Ejemplo
• Como ejemplo de utilización supongamos que queremos acceder al byte 9.125. Lo primero que tenemos que hacer es dividir este número entre el tamaño del bloque, para saber en que bloque accederemos a ese byte, en nuestro ejemplo al 8, después sólo tenemos que utilizar el offset en ese bloque (el resto de la división) para acceder al byte deseado, que en este caso es el 933. • Si quisiéramos acceder al byte 425.000, haríamos lo mismo, con lo cual 425.000/1024 = 415%40, que pertenece al direccionamiento doble. Dentro de esa tabla calculamos el offset relativo de la 415 (415-10-256) que da 149. Miramos dentro de la doble a que tabla simple pertenece 149/256 = 0%149 con lo que nos iremos a la posición 149 de la primera tabla simple que nos dará la dirección del bloque, dentro del cual nos moveremos para encontrar el byte pedido con el offset 40 de la primera división.
Grupo de Arquitectura y Tecnología de Computadores – Universidad de Cantabria RMЯ

31

Rafael Menéndez de Llano Rozas - Universidad de Cantabria (C) 2009

4. Sistema de ficheros: Libres
• Además de la asignación de ficheros debemos tener en cuenta la gestión del espacio libre (lista de bloques libres):
– Cuando asignamos buscamos las porciones ahí. – Cuando borramos un fichero añadimos sus bloques a esta lista.

• Esta lista puede estar implementada de varias maneras:
– Array de bits: Cada bloque (o cluster) está representado por un bit, si está libre será puesto a 1. El problema es el tamaño del vector que para que sea eficiente necesita estar en memoria. Un disco de 40 GB requiere más de 5 MB, para bloques de 1KB. – Lista enlazada. Se mantiene la dirección del primer bloque libre y después en cada bloque se guarda la dirección del siguiente. – Agrupamiento. Si los bloques están contiguos se almacena la dirección del próximo agrupamiento de bloques libres y lo mismo se hace en el último bloque de la agrupación (parecido a las técnicas de compresión).
Grupo de Arquitectura y Tecnología de Computadores – Universidad de Cantabria RMЯ

32