Memoria virtual
La memoria virtual es una técnica que permite que un sistema operativo dé la ilusión de tener más memoria RAM de la que existe físicamente, utilizando parte del disco duro o SSD como extensión.
👉 Gracias a la memoria virtual, se pueden ejecutar programas grandes o varios procesos simultáneos aunque la RAM sea limitada.
1. Cómo funciona? #
- El programa cree que tiene acceso a un gran espacio de direcciones de memoria continuo.
- El SO traduce esas direcciones “virtuales” a direcciones físicas reales en la RAM.
- Si la RAM no alcanza, parte de los datos se guardan en disco (swap o archivo de paginación).
2. Ventajas #
- Permite ejecutar programas más grandes que la memoria física.
- Facilita la multitarea → varios procesos pueden coexistir en memoria.
- Aísla los procesos → uno no puede acceder a la memoria de otro.
- Simplifica la programación → los desarrolladores no necesitan preocuparse por la memoria física.
3. Desventajas #
- El acceso a disco es mucho más lento que a la RAM.
- Si se abusa de la memoria virtual, el sistema se vuelve muy lento (thrashing).
- Consume espacio del almacenamiento secundario.
4. Técnicas relacionadas #
- Paginación bajo demanda: las páginas se cargan en RAM solo cuando son necesarias.
- Segmentación con paginación: mezcla de ambas técnicas para mayor flexibilidad.
5. Ejemplo práctico #
Tienes 4 GB de RAM y ejecutas un programa que necesita 6 GB:
- 4 GB se cargan en la RAM.
- 2 GB se almacenan en el disco (archivo de intercambio/swap).
- Cuando el programa necesita datos que no están en RAM, el SO intercambia páginas entre RAM y disco.
6. Analogía #
- La RAM es como tu escritorio de trabajo: rápido, pero limitado en espacio.
- El disco (swap) es como un archivador cercano: puedes guardar papeles allí cuando no caben en el escritorio, pero tardas más en acceder a ellos.
Resumen del tema
Conceptos clave #
- Fundamentos de la Memoria Virtual: abstracción que separa el espacio de direcciones lógicas de un proceso de las direcciones físicas de la RAM, permitiendo ejecutar programas que superan el tamaño de la memoria física.
- Paginación por Demanda (Demand Paging): carga perezosa (lazy loading) de páginas en memoria solo cuando el proceso intenta acceder a ellas.
- Fallo de Página (Page Fault): interrupción hardware generada por la MMU cuando se intenta acceder a una página no residente en RAM, forzando su lectura desde el disco/swap.
- Algoritmos de Reemplazo de Páginas: FIFO, Óptimo (Belady), LRU (Least Recently Used) y Segunda Oportunidad (Reloj).
- Hiperpaginación (Thrashing): estado crítico donde el SO gasta más tiempo paginando entre disco y RAM que ejecutando instrucciones del proceso.
Qué debes recordar #
La memoria virtual desacopla la memoria lógica de la física mediante paginación por demanda, gestionando fallos de página y evitando la hiperpaginación (thrashing).