Memoria virtual en el sistema operativo: qué es, paginación bajo demanda, ventajas
⚡ Resumen inteligente
La memoria virtual es un mecanismo de almacenamiento que crea la ilusión de una gran memoria principal al tratar parte del almacenamiento secundario como RAM. Permite ejecutar procesos que superan la capacidad de la memoria física y se implementa mediante paginación bajo demanda.
¿Qué es la memoria virtual?
Memoria virtual Es un mecanismo de almacenamiento que ofrece al usuario la ilusión de tener una memoria principal muy grande. Esto se logra tratando una parte de la memoria secundaria como si fuera la memoria principal. En la memoria virtual, el usuario puede almacenar procesos de mayor tamaño que la memoria principal disponible.
Por lo tanto, en lugar de cargar un proceso largo en la memoria principal, el sistema operativo carga las distintas partes de más de un proceso en la memoria principal. La memoria virtual se implementa principalmente con paginación y segmentación de la demanda.
¿Por qué necesita memoria virtual?
Estas son las razones para utilizar memoria virtual:
- Cuando el ordenador no tiene espacio en la memoria física, escribe en el disco duro, en un archivo de intercambio, lo que necesita recordar, como memoria virtual.
- Si una computadora ejecuta Windows Necesita más memoria/RAM de la que está instalada en el sistema, por lo que utiliza una pequeña parte del disco duro para este fin.
¿Cómo funciona la memoria virtual?
En el mundo actual, la memoria virtual se ha vuelto bastante común. Se utiliza cuando se requiere cargar varias páginas en la memoria principal para su ejecución y la memoria principal no está disponible para tantas páginas.
En ese caso, en lugar de impedir que las páginas entren en la memoria principal, el sistema operativo busca el espacio de RAM que se haya utilizado mínimamente en los últimos tiempos, o que no esté siendo referenciado, y lo mueve a la memoria secundaria para hacer espacio para las nuevas páginas en la memoria principal.
entendamos gestión de memoria virtual con la ayuda de un ejemplo.
Por ejemplo,
Supongamos que un sistema operativo requiere 300 MB de memoria para almacenar todos los programas en ejecución. Sin embargo, actualmente solo hay 50 MB de memoria física disponible en la RAM.
- A continuación, el sistema operativo configurará 250 MB de memoria virtual y utilizará un programa llamado Administrador de Memoria Virtual (VMM) para gestionar esos 250 MB.
- En este caso, el VMM creará un archivo en el disco duro de 250 MB para almacenar la memoria adicional necesaria.
- El sistema operativo procederá ahora a acceder a la memoria como si considerara que hay 300 MB de memoria real almacenada en la RAM, aunque solo haya 50 MB de espacio disponible.
- La función del VMM es administrar 300 MB de memoria, incluso si solo hay disponibles 50 MB de espacio de memoria real.
¿Qué es la paginación por demanda?
Un mecanismo de paginación de demanda es muy similar a un sistema de paginación con intercambiopingdonde los procesos se almacenan en la memoria secundaria y las páginas se cargan solo bajo demanda, no por adelantado.
Por lo tanto, cuando se produce un cambio de contexto, el sistema operativo nunca copia ninguna de las páginas del programa anterior desde el disco ni ninguna de las páginas del nuevo programa a la memoria principal. En su lugar, comienza a ejecutar el nuevo programa después de cargar la primera página y recupera las páginas del programa a las que se hace referencia.
Durante la ejecución del programa, si este hace referencia a una página que podría no estar disponible en la memoria principal porque se ha intercambiado, el procesador la considera una referencia de memoria no válida. Esto se debe a que el fallo de página devuelve el control del programa al sistema operativo, que exige que se almacene la página de nuevo en la memoria.
Tipos de métodos de reemplazo de páginas
Aquí hay algunos métodos importantes para reemplazar páginas:
- FIFO
- Algoritmo óptimo
- Reemplazo de página LRU
Reemplazo de página FIFO
FIFO (primero en entrar, primero en salir) es un método de implementación simple. En este método, la memoria selecciona la página para un reemplazo que ha estado en la dirección virtual de la memoria durante más tiempo.
Caracteristicas
- Cada vez que se carga una página nueva, se elimina la que lleva más tiempo en memoria. Por lo tanto, es fácil decidir qué página eliminar, ya que su número de identificación siempre se encuentra al principio de la pila FIFO.
- La página más antigua de la memoria principal es la que debe seleccionarse primero para su reemplazo.
Algoritmo óptimo
El método de reemplazo de página óptimo selecciona aquella página para un reemplazo cuyo tiempo hasta la siguiente referencia es el más largo.
Caracteristicas
- El algoritmo óptimo produce el menor número de fallos de página. Este algoritmo es difícil de implementar.
- Un algoritmo óptimo de reemplazo de páginas tiene la menor tasa de fallos de página de todos los algoritmos. Este algoritmo existe y debería llamarse MIN u OPT.
- Reemplaza la página que probablemente no se utilice durante un período prolongado. Solo se utiliza el tiempo necesario para su uso.
Reemplazo de página LRU
Las siglas LRU significan "página menos usada recientemente". Este método ayuda al sistema operativo a determinar el uso de las páginas durante un período corto de tiempo. Este algoritmo debe implementarse asociando un contador a cada página.
¿Cómo funciona?
- La página que lleve más tiempo sin utilizarse en la memoria principal será la que se seleccione para su reemplazo.
- Fácil de implementar, mantenga una lista, reemplace páginas mirando hacia atrás en el tiempo.
Caracteristicas
- El método de reemplazo LRU tiene el mayor número de registros. Este contador, también llamado registro de antigüedad, especifica la edad y la frecuencia con la que se deben consultar las páginas asociadas.
- La página que lleva más tiempo sin utilizarse en la memoria principal es la que debe seleccionarse para su reemplazo.
- También mantiene una lista y reemplaza páginas mirando hacia atrás en el tiempo.
tasa de falla
La tasa de fallos es la frecuencia con la que falla un sistema o componente diseñado. Se expresa en fallos por unidad de tiempo y se representa con la letra griega λ (lambda).
Ventajas de la memoria virtual
Estas son las ventajas y beneficios de usar memoria virtual:
- La memoria virtual ayuda a ganar velocidad cuando solo se requiere un segmento particular del programa para la ejecución del programa.
- Es muy útil para implementar un entorno de multiprogramación.
- Le permite ejecutar más aplicaciones a la vez.
- Le ayuda a encajar muchos programas grandes en programas más pequeños.
- Se pueden compartir datos o códigos comunes entre la memoria.
- Un proceso puede llegar a ser incluso mayor que toda la memoria física.
- Los datos/código deben leerse del disco siempre que sea necesario.
- El código se puede colocar en cualquier lugar de la memoria física sin necesidad de reubicación.
- Se deben mantener más procesos en la memoria principal, lo que aumenta el uso efectivo de la CPU.
- Cada página se almacena en un disco hasta que sea necesaria; después, se eliminará.
- Permite ejecutar más aplicaciones al mismo tiempo.
- No existe un límite específico sobre el grado de multiprogramación.
- Los programas grandes deben escribirse de forma que el espacio de direcciones virtuales disponible sea mayor en comparación con la memoria física.
Desventajas de la memoria virtual
Estas son las desventajas/inconvenientes del uso de memoria virtual:
- Las aplicaciones pueden ejecutarse más lentamente si el sistema utiliza memoria virtual.
- Es probable que se necesite más tiempo para cambiar entre aplicaciones.
- Ofrece menos espacio en el disco duro para su uso.
- Reduce la estabilidad del sistema.
- Permite que aplicaciones de mayor tamaño se ejecuten en sistemas que no ofrecen suficiente memoria RAM física por sí solos para ejecutarlas.
- No ofrece el mismo rendimiento que la RAM.
- Afecta negativamente el rendimiento general de un sistema.
- Ocupa espacio de almacenamiento que podría utilizarse para el almacenamiento de datos a largo plazo.


