La memoria virtual permite que el software use más memoria de la que realmente tiene el computador al traducir direcciones de memoria virtuales a direcciones físicas. Esto se logra mediante la segmentación y paginación de la memoria, donde el espacio de memoria se divide en páginas y segmentos de tamaño fijo que pueden intercambiarse entre la memoria principal y secundaria. Algunos algoritmos comunes para reemplazar páginas son FIFO, LRU y clock global.