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. Cuando se accede a una dirección virtual, el hardware traduce esta a una dirección física de memoria principal o secundaria de manera transparente para el software.