Memoria virtual

MEMORIA VIRTUAL

Es una técnica de gerencia de memoria, usada por un sistema operativo, donde memoria no contigua es presentada al software como memoria contigua. Estamemoria contigua es llamada VAS (virtual address space) o espacio de dirección virtual.

En términos técnicos, la memoria virtual permite a un software correr en un espacio dememoria que no necesariamente pertenece a la memoria física de una computadora. Para esto se debe emular un CPU que trate a toda la memoria (virtual y principal) como un bloqueigual, y determinar cuándo se requiere de una memoria u otra.

Los programas corriendo en una computadora utilizan esta memoria como si se tratase de completamente de lamemoria RAM. La memoria virtual se utiliza cuando la memoria principal (RAM) no alcanza, utilizando espacio en disco duro para extenderla. Generalmente el archivo utilizado paraguardar la memoria virtual es llamado «archivo de paginación».

La traducción de las direcciones virtuales a reales es implementada por una Unidad de Manejo de Memoria (MMU). Elsistema operativo es el responsable de decidir qué partes de la memoria del programa es mantenida en memoria física. Además mantiene las tablas de traducción de direcciones (sise usa paginación la tabla se denomina tabla de paginación), que proveen las relaciones entre direcciones virtuales y físicas, para uso de la MMU. Finalmente, cuando unaexcepción de memoria virtual ocurre, el sistema operativo es responsable de ubicar un área de memoria física para guardar la información faltante, trayendo la información desde eldisco, actualizando las tablas de traducción y finalmente continuando la ejecución del programa que dio la excepción de memoria virtual desde la instrucción que causó el fallo.