La memoria virtual es una técnica de administración de memoria que garantiza que el sistema operativo tenga la cantidad máxima de memoria física tanto para el software del usuario como para sí mismo. La mayoría de las computadoras tienen cuatro tipos de memoria: registros en el procesador, caché (tanto interna como externa al procesador), RAM y disco duro. En ese orden, van de menor potencia y mayor velocidad a mayor potencia y menor velocidad.
Muchas aplicaciones requieren acceso a más información (códigos y datos) de la que cabe en la memoria física. Esto es especialmente cierto si el sistema operativo permite que se ejecuten múltiples procesos y aplicaciones simultáneamente. Una solución al problema de requerir más memoria de la que se tiene es que las aplicaciones almacenen algunos de sus datos en el disco y los muevan a la memoria principal cuando sea necesario. Hay varias formas de hacer esto.
Una posibilidad es que la propia aplicación decida qué datos almacenar en cada ubicación (segmentación) y los recupere y transporte. La desventaja de esto, además de la complejidad del diseño y la implementación del programa, es que es muy probable que los intereses de memoria de dos o más programas entren en conflicto: cada programador podría implementar su diseño, porque es el único programa. ejecutándose en el sistema. Una alternativa es usar memoria virtual, donde una combinación de hardware especial y un sistema operativo usa memoria primaria y secundaria para hacer que la computadora parezca tener mucha más memoria principal (RAM) de la que realmente tiene. Este método es invisible para los procesos. La cantidad máxima de memoria que se puede ver está relacionada con las capacidades del procesador. Por ejemplo, en un sistema de 32 bits, el número máximo es 232, lo que da 4096 megabytes (4 gigabytes). Todo esto facilita mucho el trabajo del desarrollador de aplicaciones, porque puede ignorar por completo la necesidad de transferir datos entre diferentes estados de memoria.
Aunque la memoria virtual puede implementarse mediante el software del sistema operativo, muchas veces se utiliza una combinación de hardware y software, ya que esto requeriría un esfuerzo adicional por parte del procesador.
Sin embargo, la memoria virtual asignada en la unidad de almacenamiento secundario estará limitada por la velocidad de acceso de la misma.