Manejo de disco


6 ADMINISTRACION DE DISCO

 

6.1  CARACTERISTICAS FISICAS DE LOS DISCOS

 

Cada unidad de disco, puede tener varios platos de aluminio rígido con ambas superficies recubiertas de material magnético (similar al de las cintas).

Los discos son impulsados por un solo motor a una velocidad de alrededor de 3600 RPMS.

Existe una cabeza de lectura/escritura muy cercana a cada superficie de cada plato (del orden de micrones).

Cada disco se divide en pistas concéntricas y éstas a su vez en bloques llamados sectores.

La información es grabada magnéticamente sobre la pista que esté bajo la cabeza de lectura/escritura.

Existen unidades de discos de cabezas fijas y de cabezas móviles.

Una unidad de cabezas fijas, tiene una cabeza por cada pista (de cada lado de cada disco). Esto permite a la computadora cambiar de pista a pista rápidamente; sin embargo, es muy costosa por requerir gran número de cabezas.

Las unidades de cabezas móviles, tienen una sola cabeza por cada superficie de los discos. Se requiere hardware para mover las cabezas pero resulta en una unidad de más bajo costo aunque más lenta que las de cabezas fijas.

Todas las pistas de una unidad que pueden ser accesadas sin mover las cabezas son llamadas cilindros. Básicamente un cilindro está constituido por la misma pista de todas las superficies de los platos. Por ejemplo, cilindro cero puede ser todas las pistas cero de todas las superficies. (Normalmente, todas las cabezas se mueven al mismo tiempo y a la misma posición).

El tiempo de acceso requerido para dar servicio a una lectura/escritura es la suma de los siguientes tres tiempos:

TIEMPO DE BÚSQUEDA (Seek time).  Es el tiempo requerido para que la cabeza se posicione en la pista o cilindro apropiado. En las unidades de cabezas fijas, este tiempo se considera cero. Algunos tiempos de discos típicos para PC’s andan alrededor de 40 a 10 mili segundos.

TIEMPO DE LATENCIA o TARDANZA (Latency time). Una vez posicionada la cabeza en la pista o cilindro correcto, debe esperarse hasta que el bloque deseado rote bajo la cabeza de lectura/escritura. Es del orden de 5 mili segundos.

TIEMPO DE TRANSFERENCIA (Transfer time). Es el tiempo que se requiere para transferir la información entre el disco y la memoria. Es del orden de 1 mili  segundos.

 

DISKETTES

Los discos floppy o diskettes, son diferentes en construcción respecto a los discos rígidos.  En un floppy, la superficie es recubierta con un material magnético duro, tal que la cabeza de lectura/escritura pueda estar siempre haciendo contacto con la superficie sin destruir la información.

El diskette es mucho más barato pero después de mucho uso, el recubierto de la superficie y la cabeza se desgastan y deben ser reemplazados. Su tiempo de acceso es mayor que el de los discos rígidos, ya que no pueden rotar a velocidades muy altas por la fricción entre la cabeza y el disco.

Su capacidad de almacenamiento va de 100K a 1.2Mbytes o más.

Mientras que los discos rígidos van de 5 Mbytes a varios Gigabytes. Sus tamaños varían de 8, 5 1/4 y 3 1/2 pulgadas.

Pueden ser de uno o ambos lados, y de simple, doble o cuádruple densidad de escritura.

TAMAÑOS TÏPICOS DE DISKETTES

·        5 ¼        2S2D  Baja Densidad -  360 Kb., 40 pistas, 9 sectores.

·        5 ¼        2SHD             Alta Densidad  -  1.2 Mb., 80 pistas, 15 sectores.

·        3 ½        2S2D  Baja Densidad -  720 Kb., 80 pistas, 9 sectores.

·        3 ½        2SHD  Alta Densidad -  1.44 Mb., 80 pistas, 21 sectores.

 

PASOS PARA FORMATEAR UN DISCO DURO en MSDOS / Windows.

1.- Recabar la información correspondiente a la geometría del disco, por ejemplo, número de cabezas (platos), cilindros, sectores, capacidad total, etc. Esto puede hacerse en la carátula del disco o en su manual correspondiente.

2.- Instalarlo físicamente (cable de control y datos, cable de fuentes, tornillos, etc.).

Si el disco no es un maestro sino un esclavo, hay que modificar los “jumpers” del disco (o en algunos casos de ambos) para indicar que se trata de un esclavo.

3.- Dar de alta el disco en el set-up de la computadora utilizando la información recabada en el paso 1. Si el disco tiene auto-identificación, ponerlo en auto.

4.- Formatear el disco a bajo nivel. Este paso se omite en discos duros nuevos, y solamente se da para discos con algún tipo de problema, tal como sector de arranque dañado, demasiados sectores dañados, etc. que no puedan ser reparados con alguna utilería de disco. El formato a bajo nivel se hace con utilerías como el diskmanager o algunas que vienen integradas en el set-up de la máquina. Antes de dar el formato a bajo nivel se deben especificar algunos parámetros como el interleave (distribución de los sectores; contiguos, 1:1; terciados, 1:3; etc.), los sectores dañados (Cyl, Hd, BFI), y otros parámetros opcionales tales como bytes /sectores, etc. Con esta información se procede a formatear el disco, creando los sectores del disco , numerándolos y verificando su integridad.

Nota.- Debe tenerse cuidado de que la geometría escogida en el set-up sea exactamente la marcada en la carátula o manual del disco, pues si se escoge una geometría de emulación (misma capacidad pero con diferente número de cabezas,  cilindros y sectores) el disco puede dañarse.

5.- Crear las particiones del disco duro y su tabla de particiones.  Se utiliza el comando del sistema operativo Fdisk o la utilería diskmanager. En esta etapa se especifica si el disco duro se dividirá en varias particiones lógicas (por ejemplo una parte para C:, otra para D:, otra para E:, etc., o incluso una parte para instalar otro tipo de sistema operativo). Por omisión se toma todo el espacio disponible del disco duro para una sola partición, a la cual se le asigna la letra C:. A la partición C: se le denomina “primaria” y debe especificarse como activa (para arranque). Para crear particiones lógicas D:, E:, etc., primero hay que crear una partición extendida con el espacio sobrante de la partición primaria, y después crear cada una de las particiones lógicas, especificando el espacio que se destinará a cada una de ellas. Las particiones lógicas (D:, E:, etc.), son tomadas por el sistema de archivos como si fueran discos duros físicos independientes.

6.- Formatear el disco a alto nivel. Esto se hace con el comando del sistema operativo Format C: /S /V para la partición primaria, o Format Drive: /V en caso de que sea una  partición adicional; donde “drive” corresponde a la letra asignada en el paso anterior (D:, E:, etc.). Este procedimiento crea la FAT (tabla de asignación de archivos) y la estructura del directorio. Para el caso de la partición primaria (C:)  también copia el sistema operativo y lo hace “arrancable”.

 

6.2  PLANIFICACION DE DISCO

En los sistemas multiprogramados, los procesos generan peticiones de lectura o escritura mucho más rápido de lo que pueden ser atendidas por los dispositivos de almacenamiento de disco. Por esta razón, es necesario generar colas de espera o servicio para cada dispositivo.

Muchos sistemas atienden estas peticiones en la forma "primero en llegar, primero en ser servido" o FCFS (first comes, firt served). Este sistema da buenos resultados cuando las peticiones no alcanzan un volumen muy grande, además de ser una forma justa de prestar servicio. Sin embargo, cuando el volumen de peticiones se sobrecarga, el método FCFS puede dar como resultado tiempos de espera muy largos. Esto es debido a que varias peticiones sucesivas pueden requerir búsquedas de cilindros no contiguos o incluso opuestos, por ejemplo ir de un cilindro interior a uno exterior, ocasionando búsquedas muy largas en discos de cabezas móviles.

Cuando se tienen altos volúmenes de peticiones, es conveniente tratar de reducir los tiempos de acceso tal que pueda prestarse un servicio más eficiente. Para esto, es necesario reordenar la cola de servicio de acuerdo a parámetros diferentes que a los del FCFS. A estas técnicas se les llama "planificación de disco.

Un planificador de disco, examina las direcciones de los sectores que tiene cada petición pendiente en la cola de servicio, y las reordena de tal manera que éstas puedan ser servidas con un mínimo de movimientos mecánicos.

La planificación de disco, debe intentar maximizar el número de peticiones servidas por unidad de tiempo, y minimizar el tiempo de respuesta promedio, eliminando desperdicios de tiempo al efectuar largas búsquedas.

Los dos tipos más comunes de planificación de disco son la optimización de búsqueda y la optimización rotacional.

Debido a que los tiempos de búsqueda son mayores que los tiempos de latencia, la mayoría de los algoritmos de planificación se centran en optimizar el tiempo de búsqueda.

La optimización rotacional solo se utiliza bajo condiciones de carga muy pesada, y puede ser aplicada tanto en discos de cabezas móviles como de cabezas fijas.

 

6.3  OPTIMIZACION DE BUSQUEDA.

A continuación se describen los principales algoritmos utilizados en la optimización de búsqueda:

PRIMERO EN LLEGAR, PRIMERO EN SER SERVIDO. (First comes first served). FCFS. La primera petición que llega es la primera en ser servida. Una petición no puede ser desplazada por la llegada de otra petición con prioridad más alta.

Este algoritmo da un patrón de búsqueda al azar si las peticiones se encuentran uniformemente distribuidas en el disco.

FCFS produce tiempos de respuesta aceptables cuando se tiene una carga de peticiones ligera; es decir, que la cola de servicio no es muy larga. Sin embargo, cuando la cola aumenta considerablemente, el dispositivo se satura y el brazo del disco tiende a viajar frenéticamente de un extremo al otro, dando como resultado tiempos de respuesta largos.

MENOR TIEMPO DE BUSQUEDA PRIMERO. (Shortestseek time first). SSTF. Este algoritmo sirve la petición que produzca el menor tiempo de búsqueda; es decir, aquella petición que da por resultado el movimiento del brazo más corto con respecto a la posición actual del mismo. Por lo tanto, el orden en que llegan no es respetado.

Este tipo de algoritmo presenta un patrón de búsqueda muy concentrado en una sola región, principalmente las pistas medias; por lo que las pistas internas y externas reciben una atención pobre.

Tiene la ventaja de que da un buen número de peticiones servidas por unidad de tiempo, y una media de tiempo de respuesta baja para cargas moderadas, por lo que es muy recomendable para procesamiento por lotes (batch).

Sin embargo, para sistemas de tiempo compartido no es recomendable debido a que causa tiempo de respuestas largos para las peticiones que están en las pistas de los extremos.

BARRIDO (SCAN). En este algoritmo, la cabeza empieza en uno de los extremos del disco (por ejemplo el exterior), y empieza a moverse hacia el extremo opuesto (el interior), dando servicio a las peticiones que se encuentran en cada pista que va encontrando en su camino. Al llegar el extremo opuesto, la cabeza invierte el sentido de dirección y emprende el viaje de regreso, sirviendo todas las peticiones que se encuentran en esa trayectoria. Así por ejemplo, si una petición llega a la cola de servicio en el instante en que la cabeza pasa delante de la pista requerida por esa petición, será servida casi inmediatamente; mientras que si la petición llega justo detrás de la cabeza, entonces tendrá que esperar hasta que la cabeza emprenda el viaje de retorno y pase por la pista solicitada. El viaje de regreso puede ser iniciado no solamente cuando se alcanza el extremo del disco, sino también cuando ya no haya más peticiones en esa dirección.

Este algoritmo produce un buen número de peticiones servidas por unidad de tiempo, así como una buena medida de tiempos de respuesta.

Su característica principal es que evita las discriminaciones que se tienen en el algoritmo SSTF, por lo que sí es recomendable para sistemas de tiempo compartido. Tiene la desventaja de que los cilindros de los extremos son visitados con menos frecuencia, pero esto no es tan notorio como en el algoritmo SSTF.

BARRIDO DE N PASOS. (N STEP SCAN). Es una variante del algoritmo anterior. La diferencia estriba en que solamente se sirven las peticiones que hayan llegado hasta el momento en que el brazo inicia el movimiento hacia alguno de los extremos, por lo que las peticiones que llegan después y que aún podrían ser  servidas por encontrarse en la trayectoria, son diferidas para el viaje de retorno.

Este algoritmo disminuye aún más la discriminación a ciertas peticiones.

BARRIDO CIRCULAR. (CIRCULAR SCAN). C-SCAN. Este algoritmo es otra variante más del algoritmo SCAN.

C-SCAN mueve el brazo de un extremo a otro igual que SCAN, sirviendo las peticiones que encuentra en su trayectoria.

Al llegar al extremo opuesto, el brazo regresa rápidamente al extremo del que partió, sin servir ninguna petición en su regreso. Por lo tanto C-SCAN trata el disco como si éste fuera circular; es decir, con la última pista adyacente a la primera.

C-SCAN elimina completamente la discriminación de los cilindros de los extremos, y proporciona un tiempo de respuesta más parejo para todas las peticiones.

Una variante de este algoritmo es el C-LOOK, el cual se comporta igual que el C-SCAN excepto que al irse moviendo hacia el extremo opuesto, si ya no hay más peticiones que servir en el resto de las pistas, entonces emprende el regreso.

En general, la planificación de disco mejora mucho la eficiencia del sistema; sin embargo, existen ciertos casos particulares en los que es más adecuado aplicar simplemente un algoritmo FCFS. Por ejemplo cuando no se tienen distribuciones uniformes como en los casos de archivos secuenciales muy largos, ya que los registros están todos contiguos y agrupados en una cierta zona del disco. Esto hace innecesario el algoritmo, ya que sólo existe una sola petición a través de un gran número de cilindros contiguos.

Otro caso problemático para aplicar la planificación de disco son los archivos secuenciales indexados tales como KSAM o ISAM, ya que el archivo de datos puede estar almacenado en cilindros diferentes a los de los índices. Esto hace que se tengan que realizar búsquedas de un extremo a otro, rompiendo con el algoritmo de planificación. Una solución para evitar romper con la planificación de disco es diferir el acceso al archivo de datos hasta que se pase por los cilindros correspondientes.


6.4  OPTIMIZACION ROTACIONAL

Cuando se tienen condiciones de carga muy pesada, la cola de servicio se hace muy larga, por lo que es necesario considerar la optimización rotacional para que junto con la optimización de búsqueda puedan manejar adecuadamente las peticiones.

La optimización rotacional se basa en el hecho de que bajo condiciones de carga  muy pesada, la probabilidad de que ocurran referencias al mismo cilindro aumentan, por lo que se puede utilizar un algoritmo que optimice esas peticiones.

ALGORITMO TIEMPO DE TARDANZA MAS CORTO PRIMERO. Shortest latency time first). SLTF. En este algoritmo cuando el brazo llega a un cilindro en particular (usando cualquier algoritmo de optimización de búsqueda), se examinan todas las peticiones pendientes para ese cilindro y se sirve primero aquella que tiene el tiempo de tardanza más pequeño. Esta estrategia se ha usado por muchos años en discos de cabezas fijas ya que estos tienen un tiempo de búsqueda despreciable. Además es fácil de implementar.

En resumen, en base a experiencias obtenidas, se puede decir que la mejor política de planificación de discos se puede manejar en tres etapas: para carga baja, la planificación SCAN es la mejor; mientras que para cargas medias y pesadas C-SCAN produce los mejores resultados. Para cargas muy pesadas, el algoritmo C-SCAN con optimización rotacional produce resultados efectivos.

 

6.5  METODOS DE ASIGNACION DE ARCHIVOS

Desde el punto de vista del usuario, un archivo es un tipo de dato abstracto. Puede ser creado, abierto, escrito, cerrado, etc., sin preocuparse por su implementación. Esto es trabajo del sistema operativo.

El problema principal es cómo asignar espacio a los archivos tal que el espacio del disco sea eficientemente utilizado y los archivos sean accesados rápidamente.

Existen 3 métodos de asignación de espacio que son los más usados: asignación contigua, asignación encadenada y asignación indexada. Cada método tiene sus ventajas y desventajas.

MANEJO DE ESPACIO LIBRE.

Antes de proceder a revisar estos métodos, veremos cómo se maneja el espacio disponible en un disco. Durante la operación de un sistema de cómputo, los archivos son creados y eliminados con frecuencia. Dado que el espacio en disco es limitado, es necesario reusarlo para colocar nuevos archivos.

Para mantener la huella del espacio libre en disco, el sistema de archivos mantiene una estructura de datos llamada "Lista de espacio libre", en la cual se almacena el número de los sectores del disco que están disponibles.

Cuando se desea crear un archivo, se recorre esta lista en busca de la cantidad requerida y se le otorga al nuevo archivo.

El espacio es entonces removido de la lista de espacio libre.

Esta lista es muy importante y existen varias maneras de implementarlas: una de ellas es por medio de un vector que contiene un bit por cada sector del disco.  Si el sector correspondiente está disponible el bit se pone a cero; si no, se pone a uno. Como ejemplo, considere  un  disco  donde los sectores 2,3,4,5,8,9,10,11,12,13,17,18,25,26 y 27 están libres. Entonces el vector que compone la lista de espacio libre nos queda:

   110000110000001110011111100011111....

Otro método es encadenar todos los sectores libres del disco, manteniendo un apuntador al primer sector libre. Este sector tiene un apuntador al siguiente sector libre, y así sucesivamente. Ejemplo.

 

Este sistema no es muy rápido ya que para saber si habrá espacio suficiente, hay que recorrer la lista y leer cada sector.

Una modificación a este método consiste en encadenar bloques de sectores libres; por ejemplo si se tienen n sectores libres, en el primer sector se escriben todas las direcciones del resto de las n-1 sectores libres.  En el último sector se escribe la dirección de otro sector que contiene las direcciones de otro bloque de n sectores libres.

La importancia de este método, es que se puede saber inmediatamente cuántos sectores libres se tienen en un bloque y si serán suficientes para almacenar un cierto archivo.

Otro método consiste en mantener la dirección del primer sector libre y el número de sectores contiguos libres que siguen a ese sector. Por lo tanto, en este caso la lista de espacio libre consiste de una dirección del disco y una cuenta.

ASIGNACION CONTIGUA

El método de asignación contigua, requiere que cada archivo ocupe un conjunto de direcciones contiguas en el disco. (Las direcciones en el disco generalmente están ordenadas en una forma lineal). Típicamente, las direcciones se incrementan a través de todos los sectores en una pista, después a través de todas las pistas de un cilindro, y finalmente del cilindro cero al cilindro m (donde m es el número de cilindros en el disco). En un floppy sería igual, sólo que cada cilindro tiene únicamente dos pistas.

Este tipo  de asignación puede  soportar tanto acceso secuencial como directo.

La dificultad con la asignación contigua, es encontrar espacio para la creación de un archivo. Una vez que la lista de espacio libre ha sido definida, podemos definir cómo encontrar espacio para una asignación contigua. Si el archivo a ser creado es de n sectores de longitud, debemos buscar en la "lista de espacio libre" n sectores contiguos.

En una lista de espacio libre del tipo vector, necesitamos encontrar n bits en cero en fila. En una "lista de espacio libre" del tipo de direcciones y cuentas, necesitamos una cuenta de al menos n sectores.

Para el tipo  de asignación contigua,  se tienen dos algoritmos:

"PRIMERO EN AJUSTAR" (first fit). Busca el primer hueco de sectores contiguos en el que pueda caber el archivo.

"MEJOR EN AJUSTAR" (best fit). Busca el hueco de sectores contiguos más pequen~o en el que pueda caber el archivo.

Actualmente no se sabe cuál es mejor, pero el algoritmo primero en ajustar es el más rápido.

Ambos algoritmos sufren de fragmentación externa, la cual sucede  cuando  después de  asignar  y desasignar archivos exhaustivamente, el espacio en disco queda reducido a muchos pedazos pequeños que no son contiguos por lo que llega el momento en que un archivo no puede ser colocado en ninguno de ellos.

Una solución al problema de fragmentación externa es aplicar técnicas de compactación (por ejemplo, mensualmente reempacar el disco).

Otro problema con asignación contigua es que cuando se crea un archivo, puede no saberse el tamaño de éste, una solución es que el usuario lo estime o el sistema le de un "default", pero si esta estimación resulta ser muy grande, se desperdiciará espacio.

Por oto lado, si resulta muy baja, no se podrá agregar más registros cuando se llegue al límite, por lo que habría que abortar la operación para que el usuario genere en archivo mayor, o bien el S.O. puede buscar un hueco mayor a donde trasladar todo el archivo. Ejemplo de asignación contigua.

 

ASIGNACION ENCADENADA

En el método de asignación encadenada, los archivos no tienen la restricción de que deban ocupar sectores contiguos. En este método, cada archivo es formado por una lista encadenada de sectores del disco.

El directorio tiene un apuntador al primero y último sector del archivo.  A su vez, cada sector contiene un apuntador al siguiente sector. Por ejemplo, un archivo de 5 sectores de longitud, puede comenzar en el sector 9, y continuar en el sector 16, después en el sector 1, sector 10 y finalmente sector 25.

El archivo queda disperso por todo el disco. Los apuntadores no están accesibles al usuario. Esto se ilustra en la siguiente figura.

 

Si cada sector es de 512 palabras, y el apuntador requiere de dos palabras para almacenar una dirección del disco, entonces desde el punto de vista del usuario, los sectores quedan de 510 palabras.

Crear archivos es fácil en este método. Inicialmente se da de alta el nombre del archivo en el directorio, y se le asigna un sector de inicio. Este sector se inicializa a nil o nulo para indicar un archivo vacío.

Cuando se hace una operación de escritura, se remueve un sector de la "lista de sectores libres" y se escribe en él. En seguida ese sector es encadenado al final del archivo y el apuntador de final es actualizado en el directorio.

Una  operación  de lectura  de  este archivo consiste simplemente en leer los sectores siguiendo los apuntadores en cada sector.

No existe fragmentación externa en este método, ya que cualquier sector en la lista de sectores libres puede ser usado para encadenarlo a un archivo.

Note también que no es necesario declarar el tamaño del archivo cuando éste es creado. Su longitud puede continuar creciendo mientras haya sectores disponibles en la lista de sectores libres. Por lo tanto, nunca se requiere compactar el disco.

Sin  embargo, la  asignación  encadenada también tiene desventajas. La mayor de ellas es que solo puede ser usada con eficiencia con archivos de acceso secuencial; ya que para posicionar el apuntador de archivo en cierta posición requeriría viajar secuencialmente a través de los sectores encadenados del archivo leyendo cada uno de ellos hasta encontrar el buscado.

Como consecuencia, algunos sistemas soportan acceso directo utilizando asignación contigua y acceso secuencial con asignación encadenada. Esto obliga a declarar inicialmente el tipo de acceso.

Un archivo declarado inicialmente como secuencial, no podrá ser utilizado en forma directa pues habrá sido encadenado; mientras que un archivo declarado inicialmente como directo, sí podrá ser utilizado en ambos tipos de acceso ya que habrá sido

colocado en asignación contigua.

Una manera de convertir de un tipo de asignación a otro sería copiar un archivo de forma secuencial a otro definido como de acceso directo.

Otras desventajas son el espacio que ocupan los apuntadores, y la posibilidad de la pérdida de un apuntador al momento de leer, lo cual resultaría en una lectura a un archivo equivocado.

Esto último puede resolverse con un doble encadenamiento, pero requeriría un apuntador más y por lo tanto deja menos espacio útil.

ASIGNACION INDEXADA

La  asignación encadenada  resuelve  los problemas  de fragmentación externa y declaración de tamaño en la asignación contigua. Sin embargo, la asignación encadenada no soporta acceso directo  debido a que  sus bloques y  más importante sus apuntadores, están dispersos por todo el disco.

La asignación indexada resuelve este problema, colocando todos los apuntadores juntos en un solo bloque, el bloque de índices.

Cada archivo tiene su propio bloque de índices, el cual es un arreglo de direcciones de sectores del disco. El primer apuntador del bloque de índices, apunta al primer sector del archivo, el  segundo  apuntador al segundo  sector, y así sucesivamente. En general, el i-ésimo apuntador del bloque de índices apunta al i-ésimo sector del archivo. (Así, cuando deseamos leer la i-ésima componente, utilizamos el i-ésimo apuntador). Esto se ilustra en la siguiente figura.

 

Cuando el  archivo es inicialmente  creado, todos los apuntadores son puestos a nil ó nulo (en este caso -1). Cuando una escritura es requerida, un sector es removido de la lista de sectores libres y la información es escrita en él. A continuación su dirección por ejemplo la 9 es escrita en el bloque de índices; en este caso en la primera posición ya que es el primer bloque del archivo. El proceso se repite para cada nuevo bloque del archivo.

La asignación indexada soporta acceso directo sin sufrir de fragmentación externa. Cualquier sector libre en cualquier lugar del disco puede ser usado para satisfacer una nueva escritura.

Sin embargo, la asignación indexada sufre de pérdida de espacio ya que requiere de todo un bloque (un sector) por archivo para almacenar los apuntadores, aún cuando el archivo sea pequeño.

Normalmente el bloque de índices es de un sector, lo cual es suficiente para archivos de tamaño medio.

Para archivos de gran tamaño, varios bloques de índices pueden ser encadenados. En este caso, el último apuntador del primer bloque de índices apunta al segundo bloque de índices y así sucesivamente.

Nótese que esta representación utiliza asignación encadenada para los bloques de índices.

Otra variante de este método es usar un índice de bloques en el cual cada apuntador apunta a un índice de bloques que a su vez apunta a los sectores que componen el archivo.

Este método se puede llevar hasta un nivel de 4, pero generalmente es suficiente dos niveles. Tiene la desventaja de requerir varias lecturas según el número de niveles.

Regresar al menú principal