Sistemas operativos modernos
ping), consiste en traer a la memoria un proceso entero, ejecutarlo durante un rato y volver a guardarlo en disco. La otra estrategia, llamada memoria virtual, permite que los programas se ejecuten aunque sólo una parte de ellos esté en la memoria principal. A continuación estudia remos el intercambio; en la sección 4.3 examinaremos la memoria virtual. En la figura 4-5 se ilustra el funcionamiento de un sistema con intercambio. En un princi pio sólo el proceso A está en la memoria. Luego se crean o se traen del disco los procesos B y C. En la figura 4-5d, A se intercambia al disco. Luego llega D y B sale. Por último, se trae A otra vez. Puesto que ahora A está en un lugar distinto, es preciso reubicar las direcciones que contiene, sea por software en el momento del intercambio o (lo que es más probable) por hard ware durante la ejecución del programa. D Sistema operativo (a) (b) (c) (d) (e) (f) (g) Figura 4-5. La asignación de memoria cambia a medida que se traen procesos a la memoria y salen de ella. Las regiones sombreadas son memoria desocupada. La diferencia principal entre las particiones fijas de la figura 4-2 y las particiones variables de la figura 4-5 es que el número, ubicación y tamaño varían en forma dinámica en el segun do caso conforme los procesos llegan y se van, mientras que en el primero no cambian. La fle xibilidad de no estar atados a un número fijo de particiones que podrían ser demasiado grandes o demasiado pequeñas mejora el aprovechamiento de la memoria, pero también complica la asignación y liberación, así como su control. Cuando el intercambio crea múltiples huecos en la memoria, es posible combinar tales huecos en uno solo más grande, desplazando todos los procesos hacia abajo hasta donde sea po sible. Esta técnica se denomina compactación de memoria. No es común que se realice por que requiere mucho tiempo de CPU. Por ejemplo, en una máquina de 256 MB que puede copiar 4 bytes en 40 nanosegundos, se requerirían aproximadamente 2.7 segundos para com pactar toda la memoria. Algo que vale la pena destacar es la cuestión de cuánta memoria debe asignarse a un pro ceso cuando se crea o se intercambia a memoria. Si los procesos se crean con un tamaño fijo que nunca cambia, la asignación es sencilla: el sistema operativo asigna exactamente lo que se necesita, ni más ni menos.
RkJQdWJsaXNoZXIy MjI4NDcx