La magia de la memoria virtual y el SWAP

¿Cómo puedes ejecutar un juego de 50GB en una PC con 16GB de RAM? Bienvenido a la gran mentira del sistema operativo.

¿Qué es la Memoria Virtual?

La Memoria Virtual es una técnica que engaña a las aplicaciones haciéndoles creer que tienen bloques contiguos de memoria infinita, cuando en realidad la memoria física (RAM) está fragmentada y es limitada.

Cómo funciona (Paginación)

El SO divide la memoria en pequeños bloques llamados Páginas. Mantiene una tabla ("Page Table") que mapea las direcciones virtuales que ve el programa a direcciones físicas reales en la RAM.

El SWAP (Espacio de Intercambio)

¿Qué pasa cuando se acaba la RAM física? El SO recurre al SWAP.

Definición

Es un espacio reservado en el Disco Duro (o SSD) que se usa como si fuera memoria RAM adicional.

Cuando la RAM se llena, el SO toma los datos de los programas que no estás usando activamente (ej. esa pestaña de Chrome minimizada hace 2 horas) y los mueve al disco (Swap Out). Cuando vuelves a esa pestaña, la trae de vuelta a la RAM (Swap In).

¡Cuidado! El disco es miles de veces más lento que la RAM. Si tu computadora depende mucho del SWAP, se pondrá extremadamente lenta. Esto se conoce como Thrashing.

Verificando Memoria en Linux

Usa el comando free -h para ver tu memoria en formato legible (Human-readable).

free -h

Galería de Videos

Memoria Virtual (Computerphile)
Swap y Paginación en Linux

Referencias Bibliográficas

  • Silberschatz, A. (2018). Operating System Concepts, 10th Ed. Wiley.
  • Kerrisk, M. (2010). The Linux Programming Interface. No Starch Press.
  • Ward, B. (2021). How Linux Works, 3rd Edition. No Starch Press.