La memoria virtual es un área del espacio de almacenamiento de memoria secundaria de un sistema informático (como un disco duro o una unidad de estado sólido) que actúa como si fuera una parte de la memoria RAM o la memoria primaria del sistema.
Idealmente, los datos necesarios para ejecutar aplicaciones se almacenan en RAM, donde la CPU puede acceder rápidamente a ellos. Pero cuando se ejecutan aplicaciones grandes, o cuando se ejecutan muchas aplicaciones a la vez, la memoria RAM del sistema puede llenarse.
Para solucionar este problema, algunos datos almacenados en la RAM que no se utilizan activamente se pueden mover temporalmente a la memoria virtual (que se encuentra físicamente en un disco duro u otro dispositivo de almacenamiento). Esto libera espacio en la RAM, que luego se puede usar para acomodar los datos a los que el sistema necesita acceder de forma inminente.
Al intercambiar datos entre la RAM y la memoria virtual cuando no se necesitan y volver de la memoria virtual a la RAM cuando se necesita, un sistema puede continuar funcionando sin problemas con mucha menos RAM física de la que requeriría de otra manera.
La memoria virtual permite a un sistema ejecutar aplicaciones más grandes o ejecutar más aplicaciones al mismo tiempo sin quedarse sin RAM. Específicamente, el sistema puede funcionar como si sus recursos totales de RAM fueran iguales a la cantidad de RAM física, más la cantidad de RAM virtual.
¿Por qué se necesita Memoria Virtual?
La memoria virtual se desarrolló cuando la RAM física era muy cara, y la RAM sigue siendo más cara por Gigabyte que los medios de almacenamiento como discos duros y unidades de estado sólido. Por esa razón, es mucho menos costoso usar una combinación de RAM física y memoria virtual que equipar un sistema informático con más RAM.
Dado que el uso de memoria virtual (o el aumento de la memoria virtual) no tiene un costo financiero adicional (porque utiliza el espacio de almacenamiento existente), ofrece una forma para que un equipo use más memoria de la que está disponible físicamente en el sistema.
Otro controlador clave para el uso de la memoria virtual es que todos los sistemas informáticos tienen un límite (dictado por hardware y software) en la cantidad de RAM física que se puede instalar. El uso de memoria virtual permite que el sistema siga funcionando más allá de esos límites físicos de RAM.
Memoria virtual vs. Memoria física
Dado que la RAM es más cara que la memoria virtual, parecería, en igualdad de condiciones, que los ordenadores deberían estar equipados con la menor cantidad de RAM y de memoria virtual posible.
Pero, de hecho, las características de la memoria virtual son diferentes de las de la memoria física. La diferencia clave entre la memoria virtual y la memoria física es que la RAM es mucho más rápida que la memoria virtual.
Por lo tanto, un sistema con 2 GB de RAM física y 2 GB de memoria virtual no ofrecerá el mismo rendimiento que un sistema similar con 4 GB de RAM física. Para entender por qué, es necesario comprender cómo funciona la memoria virtual.
¿Cómo Funciona la Memoria Virtual?
Cuando una aplicación (incluido el sistema operativo) se está ejecutando, almacena la ubicación de los subprocesos del programa y otros datos en una dirección virtual, mientras que los datos se almacenan en realidad en una dirección física en la RAM. Si posteriormente otro proceso necesita más urgentemente ese espacio de RAM, los datos pueden intercambiarse de la RAM a la memoria virtual.
La responsabilidad de realizar un seguimiento de todos estos datos a medida que se intercambian entre la memoria física y la virtual recae en el administrador de memoria del equipo. El administrador de memoria mantiene una tabla que asigna las direcciones virtuales utilizadas por el sistema operativo y las aplicaciones a las direcciones físicas en las que se almacenan los datos. Cuando se intercambian datos entre la RAM y la memoria virtual, la tabla se actualiza para que una dirección virtual determinada siempre apunte a la ubicación física correcta.
Un equipo solo puede ejecutar subprocesos y manipular datos almacenados en la RAM en lugar de en la memoria virtual. Y se necesita una cantidad de tiempo no despreciable para intercambiar los datos que se necesitan en la RAM. En consecuencia, se deduce que el uso de memoria virtual implica un golpe de rendimiento.
Dicho de otra manera, un sistema con 4 GB de RAM generalmente ofrecerá un rendimiento más alto que un sistema con 2 GB de RAM y 2 GB de memoria virtual debido al impacto en el rendimiento causado por el intercambio, y por esa razón se dice que la memoria virtual es más lenta que la RAM.
Un problema potencial con la memoria virtual es que si la cantidad de RAM presente es demasiado pequeña en comparación con la cantidad de memoria virtual, un sistema puede terminar gastando una gran proporción de sus recursos de CPU intercambiando datos de un lado a otro. Mientras tanto, el desempeño de un trabajo útil se detiene casi por completo, un proceso conocido como golpes.
Para evitar problemas, generalmente es necesario reducir el número de aplicaciones que se ejecutan simultáneamente, o simplemente aumentar la cantidad de RAM en el sistema.
Los sistemas operativos, como la mayoría de las versiones de Windows, generalmente recomiendan que los usuarios no aumenten la memoria virtual más de 1,5 veces la cantidad de RAM física presente. Por lo tanto, un sistema con 4 GB de RAM debe tener una memoria virtual de no más de 6 GB.
Para minimizar el impacto en el rendimiento causado por el intercambio entre memoria física y virtual, es mejor utilizar el dispositivo de almacenamiento más rápido conectado al sistema para alojar la memoria virtual y ubicar el área de almacenamiento de memoria virtual en su propia partición.
La memoria virtual puede actuar en conjunto con la memoria principal de un ordenador para permitir operaciones más rápidas y fluidas.
Cómo aumentar la memoria virtual en un sistema
La mayoría de los sistemas operativos permiten a los usuarios aumentar la memoria virtual desde una página de configuración.
- En Windows, los usuarios también pueden permitir que el sistema administre la cantidad de memoria virtual proporcionada dinámicamente.
- Del mismo modo, en Mac OS, los usuarios pueden usar el panel de preferencias para asignar memoria virtual.
Tipos de memoria virtual: Paginación y segmentación
El sistema operativo de un sistema puede administrar la memoria virtual de varias maneras diferentes, y los dos enfoques más comunes son la paginación y la segmentación.
Paginación de memoria virtual
En un sistema que utiliza paginación, la RAM se divide en varios bloques, generalmente de tamaño 4k, llamados páginas. A los procesos se les asignan las páginas suficientes para cumplir con sus requisitos de memoria. Eso significa que siempre habrá una pequeña cantidad de memoria desperdiciada, excepto en el caso inusual en que un proceso requiere exactamente un número entero de páginas.
Durante el curso normal de las operaciones, las páginas (es decir, bloques de memoria de tamaño 4K) se intercambian entre la RAM y un archivo de página, que representa la memoria virtual.
Segmentación de memoria virtual
La segmentación es un enfoque alternativo para la administración de memoria, donde en lugar de páginas de tamaño fijo, a los procesos se les asignan segmentos de longitud diferente para cumplir exactamente con sus requisitos. Eso significa que, a diferencia de un sistema paginado, no se desperdicia memoria en un segmento.La segmentación
también permite dividir las aplicaciones en espacios de direcciones lógicamente independientes, lo que las hace más fáciles de compartir y más seguras.
Pero un problema con la segmentación es que debido a que cada segmento tiene una longitud diferente, puede conducir a la fragmentación de la memoria.»Esto significa que a medida que los segmentos se asignan y se desasignan, se pueden dejar pequeños trozos de memoria dispersos alrededor de los cuales son demasiado pequeños para ser útiles.
A medida que estos pequeños trozos se acumulan, se pueden asignar cada vez menos segmentos de tamaño útil. Y si el sistema operativo comienza a usar estos segmentos pequeños, entonces hay un gran número de ellos a los que debe realizar un seguimiento, y cada proceso necesitará usar muchos segmentos diferentes, lo que es ineficiente y puede reducir el rendimiento.
Ventajas y desventajas de la memoria Virtual
A pesar de que la RAM ahora es relativamente barata en comparación con su costo cuando la memoria virtual se desarrolló por primera vez, sigue siendo extremadamente útil y todavía se emplea en muchos, quizás la mayoría, sistemas informáticos. El problema clave de la memoria virtual se relaciona con el rendimiento.
Ventajas de la memoria virtual
- Permite ejecutar más aplicaciones al mismo tiempo.
- Permite que aplicaciones más grandes se ejecuten en sistemas que no tienen suficiente RAM física por sí solos para ejecutarlas.
- Proporciona una forma de aumentar la memoria que es menos costosa que comprar más RAM.
- Proporciona una forma de aumentar la memoria en un sistema que tiene la cantidad máxima de RAM que su hardware y sistema operativo pueden soportar.
Desventajas de la memoria virtual
- No ofrece el mismo rendimiento que la RAM.
- Puede afectar negativamente el rendimiento general de un sistema.
- Ocupa espacio de almacenamiento que de otro modo podría utilizarse para el almacenamiento de datos a largo plazo.