Memoria Virtual (Virtual Memory Address - VMA)
La memoria virtual es un concepto fundamental en los sistemas operativos modernos, y su implementación está estrechamente ligada a la arquitectura del hardware.
- Arquitectura del hardware: La arquitectura de la CPU (x86, ARM, etc.) define el tamaño del espacio de direcciones virtuales (por ejemplo, 32 bits, 64 bits) y las unidades básicas de gestión de memoria (páginas).
- Sistema operativo: El sistema operativo es responsable de gestionar la memoria virtual, incluyendo la asignación de direcciones virtuales a los procesos, la traducción de direcciones virtuales a direcciones físicas y el manejo del intercambio de páginas.
- Paginación: el espacio de direcciones virtuales se divide en páginas de tamaño fijo. El tamaño de página más común es 4 KiB, pero pueden existir otros tamaños.
- Espacio de direcciones: Cada proceso tiene su propio espacio de direcciones virtuales, que es un rango de direcciones de memoria que el proceso puede utilizar. Las direcciones dentro de este espacio son "virtuales" porque no corresponden directamente a ubicaciones de memoria física.
- MMU (Unidad de Gestión de Memoria): La MMU es un componente de hardware que traduce las direcciones virtuales generadas por la CPU en direcciones físicas en la memoria RAM.
Técnica de gestión de memoria
La memoria virtual es una técnica de gestión de memoria que permite a un sistema informático usar más memoria de la que tiene físicamente. En lugar de limitar la memoria RAM, la memoria virtual utiliza parte del almacenamiento en disco duro como memoria virtual. Esto crea una ilusión de mayor capacidad de memoria, lo que permite ejecutar programas más grandes o múltiples programas a la vez sin problemas.
Cómo funciona:
1. Paginación: La memoria virtual divide tanto la memoria física (RAM) como la memoria virtual (en disco) en páginas de tamaño fijo.
2. Tabla de páginas: El sistema operativo mantiene una tabla de páginas que rastrea qué páginas de la memoria virtual están en la RAM y cuáles están en el disco.
3. Error de página: Cuando un programa intenta acceder a una página que no está en la RAM, se produce un error de página.
4. Transferencia de páginas: El sistema operativo carga la página necesaria desde el disco duro (memoria virtual) a la RAM, reemplazando una página que no se ha utilizado recientemente.
Beneficios:
- Mayor capacidad: Permite ejecutar programas que requieren más memoria que la RAM disponible.
- Multitarea: Facilita la ejecución de múltiples programas simultáneamente sin problemas de memoria.
- Gestión de memoria: Optimiza el uso de la memoria RAM, liberando espacio para tareas más importantes.
Desventajas:
- Rendimiento: La transferencia de páginas entre RAM y disco puede ralentizar el sistema, especialmente si se utilizan con mucha frecuencia.
- Consumo de espacio: La memoria virtual ocupa espacio en el disco duro
