Memoria virtual
La memoria virtual es una forma de gestionar la memoria que es una tendencia reciente de la tecnología utilizada en los ordenadores. El hardware (la parte física del ordenador, como la CPU o la tarjeta gráfica) ejecuta software. Este software necesita la memoria del ordenador para funcionar y hacer lo que necesita. La mayoría de los ordenadores que se utilizan hoy en día pueden hacer más de una cosa a la vez, ejecutan más de una aplicación. Esto se conoce como multiprocesamiento.
En este caso, todos los programas o aplicaciones que se ejecutan en el ordenador en un momento dado comparten sus recursos. Un ordenador no tiene más procesadores o memoria principal (RAM) sólo porque se ejecuten más programas en él.
La memoria virtual es la idea de que la aplicación ve un bloque de memoria de un tamaño determinado. La aplicación puede utilizar esta memoria como crea conveniente. Este bloque de memoria es virtual en el sentido de que proviene de diferentes partes. Una parte puede estar en la memoria principal del ordenador, pero otra también puede estar en el disco. La CPU tiene una parte especial, llamada Unidad Lógica Aritmética, que realiza algunas de las traducciones entre la memoria de la aplicación y los recursos del sistema. Los sistemas operativos modernos también hacen una parte de este trabajo.
Cuando un programa intenta acceder a un bloque de memoria que no está en la memoria del sistema, ese programa se detiene y el bloque se carga en la memoria del sistema. Lo que había en esa parte de la memoria del sistema se escribe en el disco. Esto se suele llamar paginación.
Algunos sistemas informáticos, como los sistemas embebidos, no utilizan la memoria virtual porque necesitan un tiempo de respuesta muy rápido o que se mantenga siempre igual. Uno de los problemas es que con la memoria virtual es difícil predecir el tiempo de respuesta. Una aplicación que utiliza una parte de la memoria que necesita ser cargada desde el disco tendrá un tiempo de respuesta diferente de otra que no lo hace. Por ello, el concepto de memoria virtual no se utiliza en los sistemas embebidos.
El programa cree que tiene un gran rango de direcciones contiguas; pero en realidad las partes que está utilizando en ese momento están dispersas por la memoria principal, y las partes inactivas se guardan en un archivo de disco.
Preguntas y respuestas
P: ¿Qué es la memoria virtual?
R: La memoria virtual es una forma de gestionar la memoria del ordenador que permite a las aplicaciones acceder a un bloque de memoria de un tamaño determinado. Este bloque de memoria puede proceder de diferentes partes, como la memoria principal o el disco.
P: ¿Cómo funciona la memoria virtual?
R: La memoria virtual funciona permitiendo que la Unidad Lógica Aritmética de la CPU realice las traducciones entre los recursos de la aplicación y los del sistema. Los sistemas operativos modernos también realizan parte de este trabajo. Cuando una aplicación intenta acceder a un bloque de memoria que no está en la memoria del sistema, se detendrá y el bloque se cargará en la memoria del sistema.
P: ¿Cuáles son algunos ejemplos de ordenadores que no utilizan Memoria virtual?
R: Los sistemas integrados son un ejemplo de ordenadores que no utilizan Memoria virtual porque necesitan tiempos de respuesta rápidos o que se mantengan siempre iguales. Es difícil predecir el tiempo de respuesta con la Memoria virtual, por lo que no se utiliza en los sistemas integrados.
P: ¿Qué es el multiprocesamiento?
R: El multiprocesamiento es cuando un ordenador puede hacer más de una cosa a la vez, ejecutando varias aplicaciones a la vez que comparten sus recursos.
P: ¿Qué ocurre cuando una aplicación intenta acceder a un bloque de Memoria que no está en la Memoria del sistema?
R: Cuando una aplicación intenta acceder a un bloque de Memoria que no está en la Memoria del sistema, se detendrá y el bloque se cargará en la Memoria del sistema.
P: ¿Qué es la paginación?
R: La paginación se refiere a lo que ocurre cuando lo que había en esa parte de la Memoria del sistema necesita escribirse de nuevo en el disco debido a que una aplicación accede a otra parte que no estaba almacenada allí originalmente.