Multiprogramación en memoria virtual
La necesidad cada vez más imperiosa de ejecutar programas grandes y el
crecimiento en poder de las unidades centrales de procesamiento
empujaron a los diseñadores de los sistemas operativos a implantar un
mecanismo para ejecutar automáticamente programas más grandes que la
memoria real disponible, esto es, de ofrecer `memoria virtual'.
La memoria virtual se llama así porque el programador ve una cantidad de
memoria mucho mayor que la real, y en realidad se trata de la suma de
la memoria de almacenamiento primario y una cantidad determinada de
almacenamiento secundario. El sistema operativo, en su módulo de manejo
de memoria, se encarga de intercambiar programas enteros, segmentos o
páginas entre la memoria real y el medio de almacenamiento secundario.
Si lo que se intercambia son procesos enteros, se habla entonces de
multiprogramación en memoria real, pero si lo que se intercambian son
segmentos o páginas, se puede hablar de multiprogramación con memoria
virtual.
La memoria virtual se apoya en varias técnicas interesantes para lograr
su objetivo. Una de las teorias más fuertes es la del `conjunto de
trabajo', la cual se refiere a que un programa o proceso no está usando
todo su espacio de direcciones en todo momento, sino que existen un
conjunto de localidades activas que conforman el `conjunto de trabajo'.
Si se logra que las páginas o segmentos que contienen al conjunto de
trabajo estén siempre en RAM, entonces el programa se desempeñará muy
bien.
Otro factor importante es si los programas exhiben un fenómeno llamado
`localidad', lo cual quiere decir que algunos programas tienden a usar
mucho las instrucciones que están cercanas a la localidad de la
instrucción que se está ejecutando actualmente.
No hay comentarios:
Publicar un comentario