¿Qué es la memoria virtual?
La memoria virtual es un mecanismo de almacenamiento que ofrece al usuario la ilusión de tener una memoria principal muy grande. Se realiza tratando una parte de la memoria secundaria como la memoria principal. En la memoria virtual, el usuario puede almacenar procesos con un tamaño mayor 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 por demanda y segmentación por demanda.
En este tutorial del sistema operativo, aprenderá:
- ¿Qué es la memoria virtual?
- ¿Cómo funciona la memoria virtual?
- ¿Qué es la localización por demanda?
- Tipos de métodos de reemplazo de páginas
- Reemplazo de página FIFO
- Algoritmo óptimo
- Reemplazo de página LRU
- Ventajas de la memoria virtual
- Desventajas de la memoria virtual
¿Por qué necesita memoria virtual?
A continuación, se muestran las razones para utilizar la memoria virtual:
- Siempre que su computadora no tenga espacio en la memoria física, escribe lo que necesita recordar en el disco duro en un archivo de intercambio como memoria virtual.
- Si una computadora que ejecuta Windows necesita más memoria / RAM, luego instalada en el sistema, usa una pequeña porción del disco duro para este propósito.
¿Cómo funciona la memoria virtual?
En el mundo moderno, la memoria virtual se ha vuelto bastante común en estos días. Se utiliza siempre que algunas páginas requieren ser cargadas en la memoria principal para la ejecución, y la memoria no está disponible para esas muchas páginas.
Entonces, en ese caso, en lugar de evitar que las páginas ingresen a la memoria principal, el sistema operativo busca el espacio de RAM que es el mínimo utilizado en los últimos tiempos o que no está referenciado en la memoria secundaria para hacer espacio para las nuevas páginas en la memoria principal.
Entendamos la gestión de la 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 almacenada en la RAM.
- Luego, el sistema operativo configurará 250 MB de memoria virtual y utilizará un programa llamado Virtual Memory Manager (VMM) para administrar esos 250 MB.
- Entonces, en este caso, el VMM creará un archivo en el disco duro que tiene un tamaño de 250 MB para almacenar la memoria adicional que se requiere.
- El sistema operativo ahora procederá a la memoria de direcciones, ya que considera 300 MB de memoria real almacenada en la RAM, incluso si solo hay 50 MB de espacio disponible.
- El trabajo del VMM es administrar 300 MB de memoria incluso si solo hay 50 MB de espacio de memoria real disponible.
¿Qué es la localización por demanda?
Un mecanismo de paginación por demanda es muy similar a un sistema de paginación con intercambio donde los procesos almacenados 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 del disco ni ninguna de las páginas del nuevo programa en la memoria principal. En su lugar, comenzará a ejecutar el nuevo programa después de cargar la primera página y obtendrá las páginas del programa, a las que se hace referencia.
Durante la ejecución del programa, si el programa hace referencia a una página que puede no estar disponible en la memoria principal porque fue intercambiada, entonces el procesador la considera como una referencia de memoria no válida. Esto se debe a que la falla de la página y las transferencias devuelven el control del programa al sistema operativo, que exige almacenar la página nuevamente en la memoria.
Tipos de métodos de reemplazo de página
A continuación, se muestran algunos métodos importantes de reemplazo de 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.
Características:
- Cada vez que se carga una nueva página, se elimina la página que ingresó recientemente en la memoria. Por lo tanto, es fácil decidir qué página debe eliminarse, ya que su número de identificación siempre está en la pila FIFO.
- La página más antigua de la memoria principal es la que se debe seleccionar para reemplazarla primero.
Algoritmo óptimo
El método de reemplazo de página óptimo selecciona esa página para un reemplazo para el que el tiempo hasta la siguiente referencia es más largo.
Características:
- El algoritmo óptimo da como resultado el menor número de errores de página. Este algoritmo es difícil de implementar.
- Un método de algoritmo de reemplazo de página óptimo tiene la tasa de fallas de página más baja de todos los algoritmos. Este algoritmo existe y debería llamarse MIN u OPT.
- Reemplace la página que no se usa durante un período de tiempo más largo. Solo usa el tiempo en el que se necesita usar una página.
Reemplazo de página LRU
La forma completa de LRU es la página de uso menos reciente. Este método ayuda al sistema operativo a encontrar el uso de la página durante un corto período de tiempo. Este algoritmo debe implementarse asociando un contador con una página par.
¿Como funciona?
- La página, que no se ha utilizado durante más tiempo en la memoria principal, es la que se seleccionará para su reemplazo.
- Fácil de implementar, mantenga una lista, reemplace páginas mirando hacia atrás en el tiempo.
Características:
- El método de reemplazo de LRU tiene el recuento más alto. Este contador también se denomina registros de antigüedad, que especifican su antigüedad y cuánto también se deben hacer referencia a sus páginas asociadas.
- La página que no se ha utilizado durante más tiempo 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 fallas
La tasa de fallas es la frecuencia con la que falla un sistema o componente diseñado. Se expresa en fallas por unidad de tiempo. Se denota con la letra griega λ (lambda).
Ventajas de la memoria virtual
A continuación, presentamos las ventajas y los beneficios de utilizar la 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.
- Te permite ejecutar más aplicaciones a la vez.
- Le ayuda a encajar muchos programas grandes en programas más pequeños.
- Los datos o códigos comunes pueden compartirse entre la memoria.
- El proceso puede llegar a ser incluso más grande que toda la memoria física.
- Los datos / códigos 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 se requiera, luego se eliminará.
- Permite ejecutar más aplicaciones al mismo tiempo.
- No existe un límite específico sobre el grado de multiprogramación.
- Deben escribirse programas grandes, ya que el espacio de direcciones virtuales disponible es mayor en comparación con la memoria física.
Desventajas de la memoria virtual
A continuación, se muestran los inconvenientes / desventajas de usar memoria virtual:
- Las aplicaciones pueden funcionar más lentamente si el sistema utiliza memoria virtual.
- Probablemente lleve más tiempo cambiar entre aplicaciones.
- Ofrece menos espacio en el disco duro para su uso.
- Reduce la estabilidad del sistema.
- Permite que aplicaciones más grandes se ejecuten en sistemas que no ofrecen suficiente RAM física para ejecutarlas.
- No ofrece el mismo rendimiento que la RAM.
- Afecta negativamente el rendimiento general de un sistema.
- Ocupe el espacio de almacenamiento, que de lo contrario se puede utilizar para el almacenamiento de datos a largo plazo.
Resumen:
- La memoria virtual es un mecanismo de almacenamiento que ofrece al usuario la ilusión de tener una memoria principal muy grande.
- Se necesita memoria virtual siempre que su computadora no tenga espacio en la memoria física
- Un mecanismo de paginación por demanda es muy similar a un sistema de paginación con intercambio donde los procesos almacenados en la memoria secundaria y las páginas se cargan solo bajo demanda, no por adelantado.
- Los métodos de reemplazo de página importantes son 1) FIFO 2) Algoritmo óptimo 3) Reemplazo de página LRU.
- En el método FIFO (primero en entrar, primero en salir), la memoria selecciona la página para un reemplazo que ha estado en la dirección virtual de la memoria durante más tiempo.
- El método de reemplazo de página óptimo selecciona esa página para un reemplazo para el que el tiempo hasta la siguiente referencia es más largo.
- El método LRU ayuda al sistema operativo a encontrar el uso de la página durante un corto período de tiempo.
- La memoria virtual ayuda a ganar velocidad cuando solo se requiere un segmento particular del programa para la ejecución del programa.
- Las aplicaciones pueden funcionar más lentamente si el sistema utiliza memoria virtual.