Memoria
Virtual
La memoria virtual es una técnica para proporcionar
la simulación de un espacio de memoria mucho mayor que la memoria física de una
máquina. Esta ilusión permite que los programas se hagan sin tener en cuenta el
tamaño exacto de la memoria física.
La memoria virtual ha llegado a ser un
componente esencial de la mayoría de los S.O actuales. Y como en un instante
dado, en la memoria solo se tienen unos pocos fragmentos de un proceso dado, se
pueden mantener más procesos en la memoria.
La memoria virtual también simplifica la
carga del programa para su ejecución llamado reubicación, este procedimiento
permite que el mismo programa se ejecute en cualquier posición de la memoria
física.
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 teorías 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.
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.
Los métodos más comunes de implementación son
mediante:
·
Técnicas
de Paginación.
·
Técnicas
de Segmentación.
·
Una
combinación de ambas técnicas.
Las
direcciones generadas por los programas en su ejecución no son, necesariamente,
aquellas contenidas en el almacenamiento primario (memoria real), ya que las direcciones virtuales suelen seleccionarse dentro de un
número mucho mayor de direcciones que las disponibles dentro del almacenamiento
primario.
La evolución en las
organizaciones de almacenamiento puede
resumirse como sigue:
·
Real:
Sistemas dedicados a un solo
usuario.
·
Real:
Sistemas de multiprogramación en
memoria real:
Multiprogramación en
partición fija:
Absoluta.
Relocalizable
(reubicable).
Multiprogramación en
partición variable.
·
Virtual:
Multiprogramación en
almacenamiento virtual:
Paginación pura.
Segmentación pura.
Combinación
paginación / segmentación.
No hay comentarios:
Publicar un comentario