Organización de Memoria Virtual

Anuncio
MEMORIA VIRTUAL
La memoria virtual utiliza dos niveles de la jerarquía de memoria: la memoria principal y una memoria
de respaldo (que usualmente es el disco duro, aunque también puede ser una memoria expandida).
Sobre memoria de respaldo se establece un mapa uniforme de memoria virtual. Las direcciones
generadas por el procesador se refieren a este mapa virtual, pero, sin embargo, los accesos reales
se realizan sobre la memoria principal.
Para su funcionamiento, la memoria virtual exige una gestión automática según la jerarquía de
memoria formada por los niveles de memoria principal y de disco.
La gestión de memoria es automática y la realiza el sistema operativo con ayuda del hardware de la
maquina.
Los métodos más comunes para poner en práctica el almacenamiento virtual son:


Paginación
Segmentación
Paginación
En este método las páginas se transfieren de almacenamiento secundario al primario y se colocan
dentro de los bloques llamados marcos de página, que tiene el mismo tamaño que las páginas
entrantes. Una página entrante puede colocarse en cualquier marco de página disponible.
En la paginación cada proceso tiene su tabla de páginas y cada que carga todas sus paginas en
memoria principal, se crea y carga en memoria principal una tabla de páginas. Cada entrada de
dicha tabla contiene el número de marco de la página correspondiente en memoria principal. Es
normal asociar a una única tabla de páginas con cada proceso. En este caso, las entradas de la
tabla de páginas pasan a ser más complejas. Puesto que sólo algunas de las páginas de un proceso
pueden estar en memoria principal, se necesita un bit en cada entrada de la tabla para indicar si la
página correspondiente esta presente en memoria principal o no lo está. Si el bit indica que la página
esta en memoria, la entrada incluye también el marco para esa página.
A continuación se presenta un diagrama que muestra la Traducción de direcciones de un sistema de
paginación:
Segmentación
El método de segmentación cuenta con las siguientes características:
 Los bloques pueden tener tamaños diferentes y se denominan Segmentos.
 Un programa y sus datos pueden ocupar varios bloques. Estos pueden estar separados (no
contiguos) en almacenamiento real.
 Los segmentos se transfieren del almacenamiento al secundario como unidades completas.
 Un segmento entrante puede colocarse en cualquier área disponible de almacenamiento
primario cuyo tamaño sea suficiente para contenerlo.
En esta manera de administración de la memoria virtual cada proceso tiene su propia tabla de
segmentos, cuando todos los segmentos se encuentran en memoria principal, la tabla de segmentos
del proceso se crea y carga en memoria. Cada entrada de la tabla de segmentos contiene la
dirección de comienzo del segmento correspondiente en memoria principal así como su longitud. La
misma estructura, una tabla de segmentos se necesitara al hablar de un esquema de memoria virtual
vasado en segmentación. Nuevamente, es normal asociar una única tabla de segmentos a cada
proceso. En este caso las entradas de la tabla de segmentos pasan a ser más complejas. Puesto
que solo algunos de los segmentos de un proceso estarán en memoria principal, se necesitara de un
bit en cada entrada de la tabla de segmentos para indicar si el segmento correspondiente está
presente en memoria principal. Si el bit indica que el segmento está en memoria, la entrada incluye
también la dirección de comienzo y la longitud del segmento.
Otro bit de control necesario en la entrada de la tabla de segmentos es un bit de modificación que
indique si el contenido del segmento correspondiente ha sido modificado desde que se cargó por
última vez en memoria principal.
A continuación se presenta un cuadro que contiene las características de Paginación y segmentación (No esta muy claro ya que el
escaneo es de poca calidad pero es entendible):
Objetivos de la Memoria Virtual


Permite disponer de un espacio de direcciones superior al real
 Los programas pueden tener un tamaño mayor que el espacio disponible en memoria
física.
 La gestión de la memoria virtual es transparente al programador/usuario.
Permite compartir eficientemente la memoria (principalmente en entornos multiproceso)
 La memoria física se reparte entre los proceso que se ejecutan en la máquina.
 Cada proceso puede tener su propio espacio de direcciones virtuales independiente del
resto de procesos.
Descargar