Asignación dinámica de memoria: ajustes y fragmentación
Resumen
Este documento explica la asignación dinámica de memoria y las estrategias para elegir un hueco libre: primer ajuste, mejor ajuste y peor ajuste. Compara su rendimiento y describe los métodos de administración con mapa de bits y con listas ligadas. También trata la gestión del espacio de intercambio y los tipos de fragmentación, externa e interna.
Puntos clave
- La asignación dinámica de memoria busca un hueco libre con tamaño suficiente para satisfacer una necesidad de tamaño n.
- El primer ajuste asigna el primer hueco suficiente; el mejor ajuste, el más pequeño que sirve; y el peor ajuste, el más grande.
- Según simulaciones, el primer ajuste y el mejor ajuste minimizan el tiempo de almacenamiento mejor que el peor ajuste.
- Ninguno de los dos, primer ajuste o mejor ajuste, es claramente el mejor en uso de espacio, pero el primer ajuste suele ser más rápido.
- En la administración por mapa de bits, cada unidad de asignación tiene un bit: 0 si está libre y 1 si está ocupada.
- La fragmentación externa son huecos no contiguos entre procesos que, en conjunto, pueden bastar, pero que se resuelven con compactación.
- La fragmentación interna es memoria reservada y no usada por el proceso; no se puede compactar y se libera al terminar el proceso.
Asignación Dinámica de Memoria
El proceso de compactación es una instancia particular del problema de asignación de memoria dinámica. Este problema se centra en cómo satisfacer una necesidad de tamaño n con una lista de huecos libres. Existen múltiples soluciones para este desafío. El conjunto de huecos disponibles es evaluado para determinar cuál es el más indicado para la asignación. Las estrategias más comunes para asignar un hueco de la tabla son:
Estrategias de Asignación de Huecos
- Primer Ajuste (First Fit): Consiste en asignar el primer hueco con capacidad suficiente. La búsqueda puede iniciar al comienzo o al final del conjunto de huecos, o donde terminó la última búsqueda. La búsqueda finaliza inmediatamente al encontrar un hueco lo suficientemente grande.
- Mejor Ajuste (Best Fit): Busca asignar el espacio más pequeño de entre todos los espacios con capacidad suficiente. La búsqueda debe realizarse en toda la tabla, a menos que la tabla esté ordenada por tamaño. Esta estrategia produce el menor desperdicio de memoria posible.
- Peor Ajuste (Worst Fit): Asigna el hueco más grande disponible. Una vez más, se debe buscar en toda la tabla de huecos, a menos que esté organizada por tamaño. Esta estrategia produce los huecos de sobra más grandes, los cuales podrían ser más útiles si llegan procesos de tamaño mediano que quepan en ellos.
Comparación de Estrategias
Se ha demostrado mediante simulacros que tanto el Primer Ajuste como el Mejor Ajuste son superiores al Peor Ajuste en cuanto a minimizar el tiempo de almacenamiento. Ninguno de los dos (Primer o Mejor Ajuste) es claramente el mejor en términos de uso de espacio, pero por lo general, el Primer Ajuste es más rápido.
Métodos de Administración de Memoria
Administración por Mapa de Bits
Este tipo de administración divide la memoria en unidades de asignación, las cuales pueden ser tan pequeñas como unas cuantas palabras o tan grandes como varios kilobytes. A cada unidad de asignación le corresponde un bit en el mapa de bits, el cual toma el valor de 0 si la unidad está libre y 1 si está ocupada (o viceversa).
Administración de la Memoria con Listas Ligadas
Otra forma de mantener un registro de la memoria es mediante una lista ligada de los segmentos de memoria asignados o libres, donde un segmento puede ser un proceso o un hueco entre dos procesos.
Asignación del Hueco de Intercambio (Swap Space)
La asignación del hueco de intercambio se refiere a cómo se gestiona el espacio en disco destinado al intercambio de procesos (swapping).
- Sistemas con Asignación Dinámica de Swap: En algunos sistemas, cuando el proceso se encuentra en la memoria principal, no hay un hueco en el disco asignado a él. Cuando deba intercambiarse, se deberá asignar un hueco para él en el área de intercambio del disco. Los algoritmos para la administración del hueco de intercambio son los mismos que se utilizan para la administración de la memoria principal.
- Sistemas con Asignación Fija de Swap: En otros sistemas, al crearse un proceso, se le asigna un hueco de intercambio en el disco. Cuando el proceso sea intercambiado, siempre pasará al hueco asignado, en lugar de ir a otro lugar cada vez. Cuando el proceso concluye, se libera el hueco de intercambio. La única diferencia es que el hueco en disco necesario para un proceso debe representarse como un número entero de bloques del disco.
Fragmentación de Memoria
La fragmentación es la memoria que queda desperdiciada al usar los métodos de gestión de memoria previamente descritos. Tanto el Primer Ajuste, como el Mejor y el Peor Ajuste producen fragmentación externa.
Fragmentación Externa
La fragmentación externa se genera cuando, durante el reemplazo de procesos, quedan huecos entre dos o más procesos de manera no contigua, y cada hueco individual no es capaz de soportar ningún proceso de la lista de espera. Tal vez en conjunto sí haya espacio suficiente, pero se requeriría de un proceso de desfragmentación de memoria o compactación para lograrlo.
Fragmentación Interna
Existe otro tipo de fragmentación conocida como fragmentación interna, la cual es generada cuando se reserva más memoria de la que el proceso va realmente a usar. Sin embargo, a diferencia de la externa, estos huecos no se pueden compactar para ser utilizados. Se debe esperar a la finalización del proceso para que se libere el bloque completo de la memoria.
Descargar
PDF Word HTMLPreguntas frecuentes
¿Qué es la fragmentación externa?
Se genera cuando quedan huecos entre procesos de manera no contigua, y cada hueco es demasiado pequeño para cualquier proceso en espera. Para aprovecharla hace falta desfragmentar o compactar la memoria.
¿Cuál es la diferencia entre fragmentación interna y externa?
La externa son huecos libres entre procesos, que pueden compactarse. La interna es memoria reservada de más dentro del bloque de un proceso, que no puede compactarse y se libera solo al terminar el proceso.
¿Qué estrategia de asignación es más rápida?
Por lo general, el primer ajuste es más rápido. El texto indica que ni el primer ajuste ni el mejor ajuste es claramente mejor en uso de espacio.
Ponte a prueba
Tarjetas de repaso
Pulsa una tarjeta para ver la respuesta.
Test
Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.