TEMA 7: MEMORIA VIRTUAL

7.1 Motivaciones y Ventajas

7.2 Estrategias de la Administración de Memoria Virtual

7.3 Paginación por Demanda

7.3.1 Rendimiento de la Paginación por Demanda

7.4 Reemplazo de Páginas

7.4.1 Algoritmos de Reemplazo

7.5 Asignación de Marcos

7.5.1 Número Mínimo de Marcos

7.5.2 Algoritmos de Asignación de Marcos

7.6 Hiperpaginación

7.6.1 Causas de la Hiperpaginación

7.6.2 Localidad

7.6.3 Modelo del Conjunto de Trabajo

7.6.4 Frecuencia de Fallos de Página

7.7 Tamaño de Página

 

En el tema anterior sólo se ha considerado la posibilidad de mantener la totalidad del proceso en memoria para poderlo ejecutar. Ahora veremos que las técnicas de asignación no-contigua de memoria abren una nueva posibilidad de gestión de memoria: la memoria virtual. Hablaremos de los motivos y ventajas que nos reporta la ejecución de un programa parcialmente cargado en memoria.

A partir de aquí, nos dedicaremos a examinar el tipo de actuaciones que deberán incorporar los sistemas operativos para la gestión de la memoria virtual, con el fin de minimizar la proporción de fallos de páginas que pueden ocurrir. La paginación bajo demanda

A continuación consideraremos la posibilidad de que no exista ningún marco de página libre donde ubicar una nueva página. Esta decisión traerá consigo una ramificación de cuestiones, tales como la repercusión otra vez en el tiempo de acceso, y el desarrollo de algoritmos de reemplazo de páginasy de asignación de marcos. Para cada uno de estos algoritmos se realizará una reflexión sobre su funcionamiento, y valoración de su rendimiento.

 

Una revisión más profunda sobre las situaciones que provocan reemplazo, y el número de marcos dedicados a cada proceso, nos conducirán al peligro que entraña la altísima tasa de fallos de página denominada hiperpaginación. Estudiaremos sus causas y cómo se puede paliar esta molesta problemática, por ejemplo a través del conjunto de trabajo. Será necesario acudir al concepto de localidad, por ser el principio en el que se basa esta estrategia. Concluiremos nuestro estudio sobre la hiperpaginación proponiendo una aproximación más simple que tan sólo considera la frecuencia de fallos de página. Vistos todos los aspectos, estrategias y políticas relativas a la gestión de la memoria estaremos en condiciones para realizar una valoración sobre el parámetro tamaño de página.

 

7.1 Motivaciones y Ventajas [SILB94] [BIC88]

En el tema anterior sólo hemos considerado la posibilidad de que la totalidad del espacio de direcciones lógicas de un proceso se encuentre en memoria física antes de que el proceso se pueda ejecutar. Esta restricción parece necesaria y razonable, pero es lamentable, ya que limita el tamaño de un programa al tamaño de la memoria física.

De hecho, al examinar programas reales nos percatamos de que, en muchos casos, no se requiere el programa completo. Por ejemplo:

 

 A menudo los programas contienen código para tratar condiciones de error poco frecuentes. Como en la práctica estos errores rara vez ocurren, o no se presentan, este código casi nunca se ejecuta.

 

 A las matrices, listas y tablas frecuentemente se les asigna más memoria de la que necesitan realmente. Pueden declararse matrices de 100 por 100 elementos, aunque pocas veces sea mayor de 10 por 10 elementos. Una tabla de símbolos de un ensamblador puede tener espacio para 3000 símbolos, aunque el programa típico tenga menos de 200 símbolos.

 

 Ciertas opciones y características de un programa rara vez se usan, como la opción de un editor que convierte minúsculas en mayúsculas todos los caracteres del texto marcado.

 

Incluso en aquellos casos donde se necesita todo el programa, es probable que no se requiera todo al mismo tiempo. La capacidad de ejecutar un programa que se encuentra parcialmente en memoria tendría varias ventajas:

 

 Un programa ya no estaría restringido por la cantidad de memoria física disponible. Los usuarios podrían escribir programas para un espacio de direcciones virtuales muy grande, simplificando las labores de programación.

 

 Como cada programa de usuario ocuparía menos memoria física, podrían ejecutarse más programas al mismo tiempo, aumentando la utilización de la CPU y la productividad, pero sin incrementar el tiempo de respuesta.

 

 Se requeriría menos E/S para cargar o intercambiarcada uno de los programas de usuario, por lo que se ejecutarían más rápido.

 

De esta manera, un programa en ejecución que no se encuentre totalmente en memoria beneficiaría tanto al usuario como al sistema.

 

La memoria virtual es la separación de la memoria lógica del usuario de la memoria física. Esta separación permite proporcionar a los programadores una gran memoria virtual cuando sólo se dispone de una memoria física más pequeña. La memoria virtual facilita las tareas de programación, ya que el programador no se tiene que preocupar por la cantidad de memoria física disponible.

 

7.2 Estrategias de la Administración de Memoria Virtual [DEIT93] [STAL95]

 

De las diversas organizaciones de memoria tratadas en el tema anterior únicamente las que realizan una asignación no contigua (paginación, segmentación y segmentación paginada) del almacenamiento permiten implantar una administración virtual de la memoria. Para cualquiera de las tres formas de organizar esta memoria virtual habrá que determinar:

 

 Estrategias de obtención. Determinan cuándo se debe transferir una página o un segmento del almacenamiento secundaria al primario. Las estrategias de obtención por demanda esperan a que un proceso en ejecución haga referencia a una página o a un segmento antes de traerla/lo. Los esquemas de obtención anticipada intentan determinar por adelantado a qué páginas o segmentos hará referencia un proceso. Si la probabilidad de una referencia es alta y hay espacio disponible, entonces se trae al almacenamiento primario la página o segmento antes de que se haga la referencia explícita

 

 Estrategias de colocación. Determinan en qué lugar de la memoria principal se debe colocar una página o un segmento entrante. Los sistemas de paginación vuelven trivial la decisión de colocación, porque una página entrante se puede ubicar en cualquier marco de página disponible. Los sistemas con segmentación requieren estrategias de colocación como las tratadas en el contexto de los sistemas de multiprogramación con particiones dinámicas.

 

 Estrategias de reemplazo. Sirven para decidir qué página o segmento se debe desplazar para dejar espacio a una página o segmento entrante cuando está completamente ocupada la memoria principal.

 

ENLACE al tema anterior: ADMINISTRACIÓN DE LA MEMORIA

** Fin de Motivaciones, Ventajas, y Estrategias de Administración **