Memoria Virtual
Tema 7: Memoria Virtual.
1. Gestión de memoria
2. Memoria virtual
3. Memoria virtual segmentada
4. Memoria con segmentos paginados
5. Ejemplo de sistema de memoria virtual: procesador Pentium II
1.
Gestión de memoria
El sistema de memoria virtual de los actuales computadores surgió para liberar al
programador deuna serie de tareas relacionadas con el uso que los programas debían realizar con
la memoria. La memoria virtual automatiza la gestión entre los dos niveles principales de la
jerarquía de memoria: memoria principal y disco. Antes de entrar en los mecanismos específicos de
la memoria virtual revisaremos una serie de funciones que deben incorporarse en la gestión de
memoria.
1.1.Solapamiento (overlay)
El tamaño de la memoria principal disponible en los computadores ha aumentado de forma
sostenida desde sus orígenes. Sin embargo, el tamaño de los programas ha crecido más
rápidamente, por lo que la necesidad de ejecutar programas que no cabían en la memoria principal
ha sido una constante en la historia de los computadores. Una forma de superar esta limitación es
el uso de latécnica de solapamiento (overlay).
En primer lugar, con la técnica de solapamiento se divide en módulos el programa que no
cabe completo en la memoria principal. Después hay que situar en los lugares adecuados de cada
módulo las instrucciones de E/S necesarias para cargar en memoria principal aquellos módulos
residentes en el disco cuyas instrucciones deban ejecutarse o cuyos datos seanreferenciados. Es
decir, el propio programa se encarga de cargar dinámicamente aquellos módulos que son
referenciados.
Con este mecanismo se puede superar la limitación de la memoria principal, sin embargo
tiene el inconveniente de hacer depender el programa del tamaño de la memoria disponible en el
computador, con lo que variaciones en su configuración obligan a revisar la división modular delprograma.
Memoria principal
Disco
M1
M2
M1
M3
M4
M2
e/s
1
Estructura de Computadores, Facultad de Informática, UCM, Curso 08-09
1.2. Reubicación
En sistemas con multiprogramación se necesita que varios programas residan
simultáneamente en memoria. El tiempo de CPU se va distribuyendo entre ellos de acuerdo a una
política de prioridades determinada. La ubicación enmemoria de los programas no se conoce en
tiempo de compilación, por lo que no se pueden generar direcciones absolutas. Para conseguir una
asignación dinámica de memoria en tiempo de ejecución se utilizan registros de reubicación. La
dirección efectiva se obtiene sumando a la dirección generada por el compilador el contenido del
registro de reubicación asignado al programa.
1.3. Paginación
Lapaginación también surgió de la necesidad de mantener más de un programa residente en
memoria cuando la capacidad de ésta es inferior a la suma de los tamaños de los programas. Se
trata de un mecanismo automático de solapamiento múltiple que practica el Sistema Operativo
para hacer posible la multiprogramación. El espacio de memoria principal se divide en bloques de
tamaño fijo denominadospáginas. Los programas se dividen también en páginas y residen en el
disco. El Sistema Operativo se encarga de asignar páginas físicas a los programas en ejecución
(multiprogramación). De esta forma el tiempo de CPU puede distribuirse entre los programas
residentes.
1.4. Protección
Un papel importante de la gestión de memoria es la protección. Si varios programas
comparten la memoria principaldebe asegurarse que ninguno de ellos pueda modificar el espacio
de memoria de los demás. Como casi todos los lenguajes permiten el uso de punteros dinámicos, los
test en tiempo de compilación no son suficientes para garantizar la protección. Esta debe
mantenerla en tiempo de ejecución el sistema de gestión de memoria (MMU).
1.5. Compartición
Esta función parece estar en contradicción...
Regístrate para leer el documento completo.