Sei sulla pagina 1di 6

SISTEMA DE MEMORIA VIRTUAL

Los sistemas de memoria virtual separan las direcciones de memoria utilizadas por un
proceso de las direcciones fsicas reales, permitiendo la separacin de procesos e
incrementando la cantidad efectiva de memoria de acceso aleatorio utilizando la
paginacin. La calidad de la gestin de la memoria es crucial para las prestaciones del
sistema.

CARACTERSTICAS
Los sistemas de gestin de memoria de sistemas operativos multitarea normalmente
tratan con las siguientes tareas.

Reasignacin
En los sistemas con memoria virtual, los programas en la memoria debe ser capaz de
residir en diferentes partes de la memoria en diferentes momentos. Esto se debe a que
cuando el programa se cambi de nuevo en la memoria despus de ser intercambiado
por un tiempo que no siempre se puede colocar en el mismo lugar. La unidad de gestin
de memoria virtual tambin debe hacer frente a la concurrencia. Gestin de memoria en
el sistema operativo por lo tanto debe ser capaz de trasladar los programas en la
memoria y manejar referencias de la memoria y las direcciones en el cdigo del
programa para que siempre apuntan a la ubicacin correcta en la memoria.

Proteccin
Los procesos no deberan poder referenciar la memoria de otros procesos sin permiso,
para evitarlo existe la proteccin de memoria, que evita que cdigo malicioso o errneo
de un programa interfiera con la operacin de otros programas en ejecucin.

Memoria compartida
Aunque la memoria
utilizada por diferentes
procesos suele estar
protegida, algunos
procesos puede que s
tengan que compartir
informacin y, para ello,
han de acceder la misma
seccin de memoria. La
memoria compartida es
una de las tcnicas ms
rpidas para posibilitar la
comunicacin entre procesos.


Organizacin lgica
Los programas a menudo estn organizados en mdulos, algunos de los cuales pueden
ser compartidos por diferentes programas, algunos son de slo-lectura y otros contienen
datos que se pueden modificar. La gestin de memoria es responsable de manejar esta
organizacin lgica, que se contrapone al espacio de direcciones fsicas lineales. Una
forma de lograrlo es mediante la segmentacin de memoria.


Organizacin fsica
La memoria suele dividirse en un almacenamiento primario de alta velocidad y uno
secundario de menor velocidad. La gestin de memoria del sistema operativo se ocupa
de trasladar la informacin entre estos dos niveles de memoria.



GESTIN DE MEMORIA EN LOS SISTEMAS OPERATIVOS
DOS
Adems de la gestin estndar de memoria, la barrera de los 640 KB de MS-DOS y los
sistemas compatibles dieron lugar al desarrollo de programas conocidos como gestores
de memoria cuando las memorias principales de los PC comenzaron a ser mayores que
640 KB a finales de los aos 1980 (vase memoria convencional). Estos desplazan
porciones del sistema operativo fuera de su localizacin tradicional para incrementar la
cantidad de memoria convencional o semiconvencional disponible para otras
aplicaciones. El EMM386 es un ejemplo, el cual fue parte de la instalacin estndar de
las ltimas versiones de DOS, as como el QEMM. Estos permitieron el uso de memoria
ms all de la barrera de los 640 KB, donde la memoria sola estar reservada a la
memoria de acceso aleatorio, y memorias superiores.

UNIX Y SOLARIS
Las primeras versiones de Unix slo utilizaban particiones variables sin ningn
esquema de memoria virtual., pero en las implementaciones actuales, incluidas SVR4 y
Solaris 2.x, utilizan memoria virtual paginada.
En SVR4 y Solaris, tienen dos esquemas de memoria separados. El sistema de
paginacin ofrece una memoria virtual que asigna marcos de pgina en la memoria
principal a los procesos y tambin asigna marcos de pgina a las memorias intermedias
de los bloques de disco.
Un esquema de memoria virtual paginado se adapta peor a la gestin de la asignacin de
memoria para el ncleo, por lo que se utiliza un asignador de memoria del ncleo.

SISTEMA DE PAGINACIN
Estructuras de datos
Para la memoria virtual paginada, UNIX, hace uso de una serie de estructuras de datos
que son independientes de la maquina:
Tabla de pginas: posee una tabla por proceso, con una entrada para cada
pgina de la memoria virtual en proceso.
Descriptor de bloques de disco: asociado a cada pgina del proceso hay una
entrada en la tabla que describe la copia en el disco de la pgina virtual.
Tabla de marcos de pgina: describe cada marco de la memoria real y est
indexada por el nmero de marco.
Tabla de uso de intercambios: existe una tabla por cada dispositivo de
intercambio.



Reemplazo de pginas
La tabla de marcos de pgina se utiliza en el reemplazo de pginas, utilizando varios
punteros para crear listas dentro de esta tabla.
El algoritmo de reemplazo de pginas utilizado en SVR4 es conocido como algoritmo
del reloj de dos agujas, ya que utiliza un bit de referencia para cada pgina de la
memoria que rene los requisitos (no bloqueada) para ser expulsada. Este bit se pone a 0
cuando la pgina entra por primera vez y a 1 cuando se hace referencia a la pgina para
una lectura o escritura. La aguja frontal recorre la lista y pone el bit de referencia a 0, as
en algn tiempo la aguja trasera recorre la misma lista y comprueba el bit de referencia.
Si el bit est a 1, entonces la pgina se ha referenciado y se ignora el marco, en cambio,
si el bit est todava 0, entonces la pgina no se ha referenciado en el intervalo y se pone
a estas pginas en una lista para ser reemplazadas.
Dos parmetros determinan la operacin del algoritmo:
Velocidad de recorrido: la velocidad con la que las agujas se mueven a travs de
la lista de pginas, en pginas por segundo.
Alcance entre agujas: el espacio entre la aguja frontal y la trasera.

LINUX
Linux comparte algunas caractersticas de UNIX, pero su esquema de gestin de
memoria es bastante complejo (DUBE98).
MEMORIA VIRTUAL DE LINUX
Direccionamiento de memoria virtual
Linux hace uso de una estructura de tabla de pginas con tres niveles:
Directorio de pginas: un proceso activo tiene slo un directorio de pginas,
donde cada entrada en el mismo, seala a una pgina del directorio intermedio
de pginas. Para un proceso activo, el directorio debe estar en la memoria
principal.
Directorio intermedio de pginas: es el que puede ocupar varias pginas y donde
cada entrada al directorio seala a una pgina de la tabla de pginas.
Tabla de pginas: sta tambin puede ocupar varias pginas y en cada entrada se
hace referencia a una pgina virtual del proceso.

Para utilizar esta estructura de la tabla de pginas a tres niveles, una direccin virtual en
Linux se ve como un conjunto de cuatro campos. El campo ms a la izquierda (el ms
significativo) se utiliza como ndice en el directorio de pginas; el siguiente se utiliza
como ndice en el directorio intermedio de pginas; el tercero como ndice en la tabla de
pginas y el cuarto campo indica el desplazamiento dentro de la pgina seleccionada de
la memoria.



Asignacin de pginas
Desde la memoria principal, Linux define un mecanismo para tratar bloques de pginas
contiguos correspondientes a bloques de marcos de pginas contiguos, para ello, se
utiliza el sistema de colegas donde el ncleo mantiene una lista de grupos de marcos de
pgina contiguos de tamao fijo.

Algoritmo de reemplazo de pginas
El algoritmo de reemplazo de pginas de Linux se basa en el algoritmo del reloj, que, en
caso de ser el sencillo, se asocia un bit de uso y un bit de modificacin a cada pgina de
la memoria principal. En Linux utiliza una variable edad que, cada vez que se accede a
la pgina, se incrementa la variable y recorre peridicamente la reserva de paginas
globales y disminuye la variable de edad de cada pgina cuando rota por todas las
pginas de la memoria principal. Una pgina con un envejecimiento 0 es una pgina
vieja que no se ha referenciado en bastante tiempo y es la mejor candidata para el
reemplazo, y cuanto mayor valor de edad, ms frecuentemente se ha usado la pgina
recientemente y menos elegible es para el reemplazo.

WINDOWS 2000
El gestor de memoria virtual de Windows 2000 (W2K) controla como se asigna la
memoria y como se realiza la paginacin.

Mapa de Direcciones Virtuales de W2K
Cada proceso de usuario de W2K dispone de un espacio de direcciones separado de 32
bits, lo que permite 4 Gbytes de memoria por proceso. Por lo que, una parte de esta
memoria esta reservada para el sistema operativo y cada usuario tiene 2 Gbytes de
espacio de direcciones virtual disponible.

Paginacin en W2K
Cuando se crea un proceso en principio puede hacer uso de todo el espacio de usuario
de 2 Gbytes. Este espacio se divide en pginas de tamao fijo, y cualquiera puede
cargarse en la memoria principal. En la prctica una pgina puede estar en uno de estos
tres estados:
Disponible: las pginas no usadas actualmente por este proceso.
Reservada: un conjunto de pginas contiguas que el gestor de la memoria virtual
separa para un proceso pero no cuentan para la cuota de memoria del proceso
hasta que se usan.
Confirmada: paginas para las cuales el gestor de memoria virtual mantiene un
conjunto de espacio separado en su archivo de paginacin.
La distincin entre memoria confirmada y reservada es que la primera permite a
procesos o hilos declarar una cantidad de memoria que puede asignarse rpidamente
cuando sea necesaria; y la otra, minimiza la cantidad de espacio en el disco separada
para un proceso particular dejando ese espacio en disco para otros procesos.

Potrebbero piacerti anche