martes, 4 de febrero de 2014

Asignación Contigua




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