La memoria virtual permite que el software use más memoria principal de la que realmente tiene. Se divide la memoria lógica de un proceso en páginas de tamaño fijo que pueden almacenarse en memoria principal o en disco, y el hardware traduce las direcciones de memoria virtuales a direcciones físicas. Esto simplifica la carga de programas y permite que partes no utilizadas no se carguen, pero introduce fragmentación y requiere mecanismos de traducción de direcciones.