Está en la página 1de 3

MEMORIA VIRTUAL:

En la actualidad, todos los sistemas operativos utilizan memoria virtual.


El programa se divide en partes que inicialmente se encuentran en disco y son
trasladadas a memoria RAM a medida que son necesarias para la ejecución del
proceso.

De esta manera no es necesario que todo el programa esté cargado en RAM.

La técnica se denomina virtual ya que el usuario cree que todo su proceso está
cargado en memoria, cuando en realidad sólo una parte de él está en la memoria
principal, el resto permanece en el disco rígido.

Debido a que todo el programa no está cargado en su totalidad en la memoria


RAM, surge el concepto de “Espacio de Direcciones Virtuales” el cual que
representa todas las direcciones posibles del programa, algunas estarán
cargadas en la RAM y otras en el disco.
Si las direcciones fuesen de 16 bits entonces tendremos 216= 65536 direcciones,
por lo tanto el Espacio de Direcciones Virtuales estará formado por 65536
direcciones, esto equivale a un espacio de direcciones de 64 K.

El almacenamiento virtual permite ejecutar un programa cuyo tamaño supera a la


capacidad de memoria RAM. De esta manera se genera en el usuario la ilusión de
contar con mayor capacidad de memoria RAM de la que en realidad existe.

Una de las ventajas de la memoria virtual es que se puede incrementar el grado de


multiprogramación, ya que permite tener en memoria RAM muchos más
programas en la memoria, debido a que de cada uno de ellos, se tiene cargada
sólo una parte.

La mayoría de los sistemas con memoria virtual utiliza una técnica denominada
Paginación, la cual consiste en dividir el programa en trozos de igual tamaño
llamados páginas.

Algunas de estas páginas se cargan en memoria y otras quedan almacenadas en


el disco rígido y son trasladadas a memoria RAM, a medida que son necesarias
para la ejecución del proceso, esta técnica se denomina Paginación por Demanda.

Las páginas que se almacenan en el disco quedan alojadas en un área


especialmente destinada al tal fin que recibe el nombre de swap ó área de
intercambio la cual funciona como una extensión de la memoria RAM y le hace
creer al usuario que tiene existe más memoria RAM de la que en realidad se
dispone y por lo tanto dicha área de intercambio es la Memoria Virtual.

También se utiliza la técnica llamada Segmentación por la cual los programas se


dividen en trozos de distinto tamaño.

Generalmente se destina una partición del disco, para almacenar


temporariamente las páginas del programa que no están utilizándose.
Supongamos el siguiente ejemplo:

Un programa ocupa 64 K y se encuentra dividido en 16 páginas de 4 K cada una, y


sólo contamos con 32 K de RAM. En tal caso podemos tener a lo sumo 8 páginas
alojadas en memoria RAM, el resto permanecerán en disco y serán cargada en
RAM sólo cuando sean demandadas para la ejecución del proceso. Este programa
puede generar 65536 direcciones virtuales de 32 bits cada una (216 direcciones).

Las direcciones en la memoria RAM son las direcciones reales.

MMU (MEMORY MANAGEMENT UNIT O UNIDAD DE MANEJO DE MEMORIA):

Cuando el proceso requiere una dirección del programa (dirección virtual)


comprendida en una página que se encuentra cargada en RAM, dicha dirección
virtual no se coloca directamente en el bus de direcciones sino que se envía a la
(MMU: Memory Management Unit o Unidad de Manejo de Memoria) la cual se
encarga de hacer la traducción de la dirección virtual en una dirección física.

La MMU hace la traducción a través de los siguientes pasos (Ver ejercicios dados
en clase):

Calcula el desplazamiento:
desplazamiento=dirección virtual – dirección de inicio de la página

Luego calcula la dirección real:


dirección real= dirección de inicio del marco + desplazamiento

La MMU consulta la Tabla de Páginas para saber en cuál marco se encuentra


alojada la página (En realidad, en la RAM se encuentra una copia de la página).
Una vez hecha la traducción, coloca la dirección física en el bus de direcciones
para enviar la petición a la RAM.

TABLA DE PAGINAS:

Por cada programa existe una Tabla de Páginas contiene información sobre cada
una de las páginas, la principal información es la siguiente:

Marco de página (en la RAM) en el cual se encuentra alojada cada página.


Bit presente/ausente: Está activado si la página se encuentra en RAM y está
desactivado cuando la página se encuentra en disco.
Bit R: Se activa cuando la página es referenciada (puede ser referenciada sólo
para lectura ó también para ser modificada.
Bit M: Se activa cuando la página es modificada. Si la página es accedida sólo
para ser leida entonces el bit M no se activa.

¿CUANDO SE IMPLEMENTA UN ALGORITMO DE REEMPLAZO DE PAGINAS?


Si el proceso requiere una dirección comprendida en una página que no se
encuentra en memoria RAM entonces, dicho proceso queda bloqueado y el
sistema operativo debe cargar en RAM la página demandada.

Puede ocurrir que la memoria RAM esté llena en tal caso, el sistema operativo
aplica un Algoritmo con el objetivo de decidir qué página será extraida de la RAM
para que en su reemplazo pueda ser cargada la página demandada. Dichos
Algoritmos reciben el nombre de Algoritmos de Reemplazo de Páginas.

ALGORITMO DE REEMPLAZO DE PÁGINAS DE LA SEGUNDA


OPORTUNIDAD:

A medida que las páginas llegan a memoria RAM son ubicadas en una cola.
El Algoritmo de reemplazo de páginas de la segunda oportunidad examina la
página que ingresó en primer lugar a la cola, es decir la página que lleva mayor
tiempo en la cola (la página más antigua) y analiza su bit de Referencia (bit R)
Si el bit R=0 significa que la página no fue referenciada últimamente por lo tanto
se la considera una página de poco uso, antes de eliminarla el algoritmo examina
el valor del bit M, si el bit M=1 esto indica que la página fue modificada mientras
estaba en memoria y en tal caso, actualiza la copia de la misma que se encuentra
en disco y posteriormente procede a eliminar dicha página de la memoria RAM.
Si el bit R=1 esto indica que la página fue utilizada recientemente y por lo tanto se
supone que es muy utilizada, en consecuencia se resetea el bit R es decir se le
asigna valor 0 y se envía la página al final de la cola como si recién llegara, a
continuación analiza el bit R correspondiente a la siguiente página de la cola.
Cabe aclarar que si bien se denomina de segunda oportunidad, una página
puede permanecer en memoria mucho tiempo, siempre que sea una página
muy referenciada.

ALGORITMO DE REEMPLAZO DE PÁGINAS DEL RELOJ (Ver gráficos dados en


clase):

En este Algoritmo, un puntero apunta hacia la página más nueva y otro puntero
apunta hacia la página más antigua.

El Algoritmo de reemplazo de páginas del Reloj examina la página más antigua.


Si el bit R=1 esto indica que la página fue utilizada recientemente y por lo tanto se
supone que es muy utilizada, en consecuencia se resetea el bit R y los punteros
avanzan y por lo tanto esta página pasa a estar apuntada como las más nueva.
A continuación el Algoritmo examina la página que está apuntada como las más
antigua y así sucesivamente hasta encontrar una página cuyo con R=0, en tal
caso antes de eliminarla el algoritmo examina el valor del bit M, si el bit M=1 esto
indica que la página fue modificada mientras estaba en memoria, y actualiza la
copia de la misma que se encuentra en disco y posteriormente procede a eliminar
dicha página de la memoria RAM.

También podría gustarte