Memoria virtual
La memoria virtual es la técnica que permite correr a los programas aún cuando no están ciento por ciento en memoria. Da al usuario la ilusión de que está disponible una gran cantidad de memoria principal cuando de hecho no es así.
El tamaño del almacenamiento virtual está limitado por el esquema de direccionamiento del sistema de computación y por la cantidad de memoria disponible y no por el tamaño de memoria principal.
El espacio de almacenamiento direccionable es aquel en el cual las direcciones virtuales se traducen a direcciones reales.
La memoria virtual es una utilidad que permite a los programas direccionar la memoria desde un punto de vista lógico, sin importar la cantidad de memoria principal física disponible. La memoria virtual fue concebida como un método para tener múltiples trabajos de usuario residiendo en memoria principal de forma concurrente, de forma que no exista un intervalo de tiempo de espera entre la ejecución de procesos sucesivos, es decir, mientras un proceso se escribe en almacenamiento secundario, se lee el proceso sucesor.
Debido a que los procesos varían de tamaño, si el procesador planifica un determinado número de procesos, es difícil almacenarlos compactamente en memoria principal. Se introdujeron los sistemas de paginación, que permiten que los procesos se compriman en un número determinado de bloques de tamaño fijo, denominados páginas. Un programa hace referencia a una palabra por medio de una dirección virtual, que consiste en un número de página y un desplazamiento dentro de la página.
Cada página de un proceso se puede localizar en cualquier sitio de memoria principal. El sistema de paginación proporciona una proyección dinámica entre las direcciones virtuales utilizadas en el programa y una dirección real, o dirección física, de memoria principal.
Fuente: Apuntes de Arquitectura de computadoras de la FCA de la UNAM