La memoria virtual es un mecanismo de los sistemas operativos que permite hacer creer a los programas que disponen de más memoria de la que realmente dispone el equipo físicamente, y consiste en un espacio de intercambio, que puede ser un archivo de paginación (pagefile.sys), en el caso de Windows, o una partición de disco, lladama SWAP o de intercambio, que es el caso de los sistemas Unix.
Mediante la memoria virtual podemos, por ejemplo, disponer de 4 Gb de RAM en equipos de 32 bits, que están limitados a 3 Gb por no poder «trabajar» con números tan altos; cada ciclo del procesador éste trabaja con una «palabra» de 32 ceros y unos, que representan la instrucción que tiene que ejecutar y la/s dirección/es de memoria necesarias (dicho muy por encima), y claro, no le cabe.
Así pues, los procesos poco activos o menos prioritarios se pueden almacenar en el disco duro, dejando memoria disponible para cargar otros procesos. Pero claro, el tiempo de acceso al disco es muchísimo más elevado que el de acceso a la memoria, y si el sistema abusa de la memoria virtual puede hundirse, debido a la hiperpaginación o rubbish.
Una vez sabemos para qué sirve la memoria virtual, o espacio de intercambio, o SWAP, que en Linux se crea al instalar el sistema operativo, ¿qué tamaño debemos asignarle a dicha partición? Pues según Russell Coker, que sabe bastante del tema, el tamaño ideal de la SWAP es:
- Igual a la RAM para ordenadores con menos de 1Gb
- La mitad de la RAM para equipos entre 2 y 4 Gb
- 2 Gigas para equipos con más de 4 Gb de RAM
Vale la pena recordarlo.