ASIGNACIÓN CONTIGUA
Como
el nombre lo dice, los bloques que pertenecen a un mismo archivo se ubican de
manera contigua. Lo que es particularmente útil en el caso de los discos
mecánicos ya que no es necesario realizar grandes movimientos en el cabezal
para leer el archivo. También reduce las búsquedas en el disco, ya que se sabe
que están en cierto espacio contiguo y no es necesario explorar todo para
llegar a la información deseada. Cada directorio contiene, para cada archivo,
la dirección del bloque en que comienza y la longitud del área asignada a este
archivo.
Acceso:
La
asignación contigua puede tener acceso directo como secuencial.
Directo:
Conociendo el bloque inicial y la posición relativa del bloque buscado,
simplemente se suma la cantidad de bloques para obtener la ubicación del bloque
deseado. Secuencial: Lectura bloque a bloque en orden, partiendo desde el
inicial, y finalizando ya sea en el bloque final o en uno intermedio deseado.
Ventajas:
Fácil
implementación, pues solo es necesario el bloque inicial y la cantidad de
bloques para llevar el registro de un archivo.
Una
vez almacenado es muy fácil acceder al archivo
Excelente
desempeño de lectura, pues el archivo entero puede ser leído en una única
operación, solo se necesita una búsqueda para encontrar el archivo, luego de
esto no hay más búsquedas u otros retrasos rotacionales, por lo que los datos
pueden ser transmitidos al máximo ancho de banda del dispositivo.
Desventajas:
El
disco se fragmenta con el tiempo (presencia de archivos y huecos), cuando el
disco no está muy lleno no es un gran problema, pues cada archivo nuevo puede
ser escrito al final del disco. Pero con el disco más lleno se debe compactar
el disco (desfragmentar) o reutilizar el espacio de los huecos. Para esto
último, se requiere llevar una lista de huecos; para almacenar un archivo de
esta manera, se deberá encontrar una porción contigua del disco que tenga, como
mínimo, el tamaño completo del archivo. Esto resulta complicado, se reconoce un
problema de fragmentación externa.
En
tiempos pasados, para solucionar la fragmentación externa, el usuario
manualmente copiaba los contenidos del disco a otro (generalmente un diskette)
y luego lo volvía a copiar en disco.
Como
se debe disponer de un bloque de cierto tamaño para un archivo completo hay que
estimar cuál es el tamaño total del archivo a guardar. Si el archivo existe, no
es complicado conocer su tamaño, pero, si se quiere asignar espacio para un
archivo nuevo, es bastante más difícil llegar de aproximar. Lo mismo si sabemos
que un archivo crecerá en el tiempo, debemos asignarle más espacio que el
necesario inicialmente, pero esto dejará huecos sin usar durante, quizá largos,
periodos de tiempo (eso es lo que se conoce como fragmentación interna).
Soluciones:
Extensión:
bloque contiguo extra asignado al archivo
Desfragmentación:
Proceso que re-acomoda todos los bloques de manera que los archivos queden en
áreas contiguas (entre bloques y entre archivos). Esto elimina los espacios
entre archivos
Registro
de lista de bloques vacíos (huecos): lleva una lista o registro de los espacios
vacíos disponibles en el disco, para que en ellos puedan ser acomodados nuevos
archivos.
No hay comentarios:
Publicar un comentario