Sunteți pe pagina 1din 16

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.
– Algoritmos de planificación.
– Errores.
• E/S Dispositivo y Organización Física.
– Traducción de direcciones.
– Cache de disco.
• Sistema de ficheros.
– 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.
• Gestión de directorios.
– Información contenida y estructura de directorios.

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

1
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.
2. Sistema de ficheros.
• 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.
3. E/S de dispositivo y Organización física.
• 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.
4. 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.
5. Hardware.

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

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.
– Algoritmos de planificación.
– Errores.
• E/S Dispositivo y Organización Física.
– Traducción de direcciones.
– Cache de disco.
• Sistema de ficheros.
– 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.
• Gestión de directorios.
– Información contenida y estructura de directorios.

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

2
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

3
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)
• Es fácil de implementar (es un fichero) pero poco eficiente.
– Estilo UNIX. Se dedica una partición completa a este fin.
• 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.

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

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

4
Índice
• Introducción: niveles de abstracción.
• Hardware.
– Disco Duro.
– Sistemas Ópticos.
– Compact Flash.
– Formato.
– Swap.
• Planificación y control.
– Algoritmos de planificación.
– Errores.
• E/S Dispositivo y Organización Física.
– Traducción de direcciones.
– Cache de disco.
• Sistema de ficheros.
– 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.
• Gestión de directorios.
– Información contenida y estructura de directorios.

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

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.
2. Si estuvieran repartidos por el disco:
– Ts = 4 ms. Latencia = 4ms. Tsector = 8ms/500 = 16 µs
– Total = (4 + 4 + 0,016) * 2500 = 20040 ms. !!!!!
– 313 veces más.

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

5
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

6
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

7
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

8
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.

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

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

9
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

10
Índice
• Introducción: niveles de abstracción.
• Hardware.
– Disco Duro.
– Sistemas Ópticos.
– Compact Flash.
– Formato.
– Swap.
• Planificación y control.
– Algoritmos de planificación.
– Errores.
• E/S Dispositivo y Organización Física. NO
– Traducción de direcciones.
– Cache de disco.
• Sistema de ficheros.
– 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.
• Gestión de directorios.
– Información contenida y estructura de directorios.

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

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.
• 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.
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.
• 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.
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Я 22

11
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

12
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.

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

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).

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

13
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

14
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 Bloques Bytes

10 entradas directas 10 10 K

1 entrada simple 256 256 K


1 entrada doble 256 x 256 64 M
1 entrada triple 256 x 256 x 256 16 G

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

15
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

16

S-ar putea să vă placă și