469 a la 478 - Gestión Almacenamiento Secundario
En memoria secundaria, un archivo consta de un conjunto de bloques. El sistema operativo o el sistema de gestión de archivos es responsable de la asignación de los bloques a archivos. Esto suscita dos cuestiones sobre la gestión. En primer lugar, debe asignarse el espacio de memoria secundaria a los archivos y, en segundo lugar, es necesario guardar constancia del espacio disponible para asignar.
Esta sección va a comenzar observando las alternativas de asignación de archivos en un solo disco. La gestión del espacio libre se abordará más tarde. Por último, se examinarán las técnicas de almacenamiento de archivos sencillos en varios discos.
Asignación de Archivos
En la asignación de archivos surgen varias cuestiones:
1. Cuando se crea un nuevo archivo, ¿se asigna de una sola vez el máximo espacio que necesite?
2. El espacio se asigna a un archivo en forma de una o más unidades contiguas, que se llaman secciones. El tamaño de una sección puede variar desde un único bloque a un archivo entero. ¿.Qué tamaño de sección debería usarse para asignar archivos?
3. ¿Qué tipo de estructura de datos o tabla se usará para guardar constancia de las secciones asignadas a un archivo? Dicha tabla se conoce normalmente como tabla de asignación de archivos (FAT).
A continuación se examinan estas cuestiones:
Asignación Previa frente a Asignación Dinámica
Una política de asignación previa requeriría que el tamaño máximo de un archivo se declarase en el momento de crearlo. En algunos casos, como al compilar los programas, al crear archivos de datos de resumen o al transferir un archivo desde otro sistema por una red de comunicaciones, este valor puede estimarse. Sin embargo, para muchas aplicaciones es difícil, si no imposible, estimar de manera fiable el posible tamaño máximo del archivo. En esos casos, los usuarios y programadores de aplicaciones se inclinarían por sobrestimar el tamaño del archivo de forma que no se quedaran sin espacio.
Tamaño de Sección
La segunda cuestión de la lista anterior es la del tamaño de sección asignada a los archivos. En un extremo, se puede asignar una sección suficientemente grande para guardar el archivo entero. En el otro extremo, se asigna el espacio en disco de bloque en bloque. Al elegir el tamaño de sección, debe haber un compromiso relativo a la eficiencia desde el punto de vista de un solo archivo trente al del sistema global. [WEID87] considera los siguientes cuatro elementos en esta elección:
1. La contigüidad del espacio aumenta el rendimiento, especialmente para las operaciones de Recuperar Siguiente y. sobremanera, para ejecutar las transacciones de un sistema orientado a transacciones.
2. Disponer de un gran número de secciones pequeñas aumenta el tamaño de las tablas necesarias para gestionar la asignación de información.
3. Disponer de secciones de tamaño fijo —por ejemplo, bloques— simplifica la reasignación del espacio.
4. Disponer de secciones de tamaño variable o secciones pequeñas de tamaño fijo minimiza la pérdida de espacio no usado provocada por la sobreasignación.
Por supuesto, estos elementos interactúan entre sí y deben considerarse en conjunto. Como resultado se tienen dos opciones principales:
• Secciones contiguas variables y grandes: Esta opción ofrecerá un rendimiento mejor. El tamaño variable evitará la pérdida y las tablas de asignación de archivos serán pequeñas. Sin embargo, el espacio es difícil de reutilizar.
• Bloques: Las secciones fijas y pequeñas ofrecen una flexibilidad mayor. Se pueden necesitar tablas grandes o estructuras complejas para su asignación. La contigüidad se abandona; los bloques se asignan a medida que se necesiten.
Cualquier opción es compatible con la asignación previa o con la asignación dinámica. En el primer caso, se asigna previamente a los archivos un grupo contiguo de bloques. Esto elimina la necesidad de una tabla de asignación de archivos; todo lo que se necesita es un puntero al primer bloque y el número de bloques asignados. En el segundo caso, todas las secciones necesarias son asignadas de una vez.
Con secciones de tamaño variable, hay que preocuparse de la fragmentación del espacio libre. Esta cuestión surgió cuando se estudiaba la memoria principal particionada en el capítulo 6. Las siguientes son algunas estrategias alternativas posibles:
• Primer hueco (first fit): Elegir el primer grupo de bloques contiguo sin usar de tamaño suficiente.
• Mejor hueco (best fit): Elegir el grupo más pequeño sin usar que tenga tamaño suficiente.
• Hueco mas cercano (nearest fit): Elegir el grupo sin usar de tamaño suficiente que este más cercano al asignado previamente al archivo para aumentar la cercanía.
No está claro qué estrategia es la mejor. La dificultad de modelar estrategias alternativas está en que intervienen muchos factores, incluyendo los tipos de archivo, la pauta de los accesos a archivo, el grado de multiprogramación, otros factores de rendimiento, la cache de disco, la planificación del disco, etc.
Métodos de Asignación de Archivos
Después de ver la discusión entre asignación previa y dinámica y el tamaño de sección, se está en posición de considerar métodos específicos de asignación de archivos. Son de uso común 3 métodos: contiguo, encadenado e indexado.
Con asignación contigua, cuando se crea un archivo se le asigna un único conjunto contiguo de bloques, ésta es una estrategia de asignación previa que emplea secciones de tamaño variable. La tabla de asignación de archivos necesita sólo una entrada por cada archivo, que muestre el bloque de comienzo y la longitud del archivo. La asignación contigua es la mejor desde el punto de vista de un archivo secuencial individual. Se pueden traer múltiples bloques de una vez para mejorar el rendimiento en los tratamientos secuenciales.
En el extremo opuesto a la asignación contigua está la asignación encadenada Normalmente, la asignación se hace con bloques individuales. Cada bloque contendrá un puntero al siguiente bloque de la cadena. La tabla de asignación de archivos necesita de nuevo una sola entrada por cada archivo que muestre el bloque de comienzo y la longitud del archivo.
La asignación indexada trata muchos de los problemas de las asignaciones contigua y encadenada. En este caso, la tabla de asignación de archivos contiene un índice separado de un nivel para cada archivo; el índice posee una entrada para cada sección asignada al archivo. Normalmente, los índices no están almacenados físicamente como parte de la tabla de asignación de archivos.
Gestión del Espacio Libre
Al igual que el espacio asignado a los archivos, se debe gestionar el espacio que no queda asignado actualmente a ningún archivo. Para llevar a cabo cualquiera de las técnicas de asignación que se han descrito, es necesario saber qué bloques del disco están disponibles. Por tanto, hace falta una tabla de asignación de disco además de una tabla de asignación de archivos. Tres técnicas son de uso común: las tablas de bits, las secciones libres encadenadas y la indexación.
Comentarios
Publicar un comentario