Memoria Virtual
La memoria virtual es una técnica que puede implementar el administrador de memoria con soporte de paginación para aumentar el grado de multiprogramación. Para ello se emplea una zona en disco conocida como zona de intercambio o swap para descargar en ella segmentos o páginas que se encuentran en memoria principal.
La zona de intercambio se implementa siguiendo dos posibles estrategias:
- Se destina una parte del disco reservada explícitamente para ello. En este caso, dicho espacio de memoria no puede ser empleado para almacenar información útil al usuario. Los sistemas operativos tipo-Unix implementan esta estrategia.
- Se emplea un fichero oculto que puede aumentar su tamaño de manera variable para almacenar las páginas descargadas. Los sistemas operativos de tipo-Microsoft implementan esta aproximación.
La técnica de memoria virtual se manifiesta cuando toda la memoria principal está en uso y, por tanto, no existe espacio libre para cargar una cierta pagina que es requerida por un proceso. Ante esta situación, el mecanismo de memoria virtual permite seleccionar una página víctima que será descargada a la zona de intercambio. De esta manera se libera memoria principal para poder cargar la página que nuestro proceso en estado activo requiere. La selección de las páginas víctima se hace en base a diferentes criterios que veremos en esta unidad didáctica.
Por tanto, en caso de que un proceso activo requiera una página o segmento que está descargado en la zona de intercambio, hay que seleccionar una página víctima de otro proceso, preferentemente en estado preparado o bloqueado, que será descargada en disco para hacer espacio a la página requerida.
Los tiempos de descarga y recarga de páginas tienen una penalización considerable. Esto se debe a los tiempos de acceso al dispositivo disco magnético, cuyos tiempos de accesos son mucho mayores que a los de la memoria principal. En general, un buen criterio de reemplazo de páginas tienden a no descargar páginas que vayan a ser necesitadas en poco, reduciendo así la cantidad de accesos a disco asociados a la descarga y recarga de páginas.
A continuación, nos centraremos en el estudio de los diferentes criterios de reemplazo para páginas que permiten seleccionar la página víctima.