El concepto de memoria virtual en la arquitectura de computadoras

La memoria virtual es un concepto valioso en la arquitectura de la computadora que le permite ejecutar programas grandes y sofisticados en una computadora, incluso si tiene una cantidad relativamente pequeña de RAM. Una computadora con memoria virtual hace malabares ingeniosamente con las demandas conflictivas de múltiples programas dentro de una cantidad fija de memoria física. Una PC con poca memoria puede ejecutar los mismos programas que una con abundante RAM, aunque más lentamente.

Direcciones físicas vs virtuales

Una computadora accede al contenido de su RAM a través de un sistema de direcciones, que son esencialmente números que ubican cada byte. Debido a que la cantidad de memoria varía de una PC a otra, determinar qué software funcionará en una computadora determinada se vuelve complicado. La memoria virtual resuelve este problema al tratar cada computadora como si tuviera una gran cantidad de RAM y cada programa como si usara la PC exclusivamente. El sistema operativo, como Microsoft Windows o el OS X de Apple, crea un conjunto de direcciones virtuales para cada programa. El sistema operativo traduce las direcciones virtuales en físicas, ajustando dinámicamente los programas a la RAM a medida que está disponible.

Paging

La memoria virtual divide los programas en bloques de tamaño fijo llamados páginas. Si una computadora tiene abundante memoria física, el sistema operativo carga todas las páginas de un programa en la RAM. De lo contrario, el sistema operativo se ajusta tanto como puede y ejecuta las instrucciones en esas páginas. Cuando la computadora termina con esas páginas, carga el resto del programa en la RAM, posiblemente sobrescribiendo las páginas anteriores. Debido a que el sistema operativo administra automáticamente estos detalles, esto libera al desarrollador de software para que se concentre en las funciones del programa y no se preocupe por los problemas de memoria.

Multiprogramación

La memoria virtual con paginación permite que una computadora ejecute muchos programas al mismo tiempo, casi independientemente de la RAM disponible. Este beneficio, llamado multiprogramación, es una característica clave de los sistemas operativos de PC modernos, ya que se adaptan a muchos programas de utilidad como controladores de impresora, administradores de red y escáneres de virus al mismo tiempo que sus aplicaciones: navegadores web, procesadores de texto, correo electrónico y medios. jugadores.

Archivo de paginación

Con la memoria virtual, la computadora escribe páginas de programas que no se han utilizado recientemente en un área del disco duro llamada archivo de paginación. El archivo guarda los datos contenidos en las páginas; si el programa lo necesita nuevamente, el sistema operativo lo recarga cuando la RAM está disponible. Cuando muchos programas compiten por la RAM, el hecho de intercambiar páginas por el archivo puede ralentizar la velocidad de procesamiento de una computadora, ya que dedica más tiempo a las tareas de administración de la memoria y menos tiempo a realizar trabajos útiles. Idealmente, una computadora tendrá suficiente RAM para manejar las demandas de muchos programas, minimizando el tiempo que la computadora dedica a administrar sus páginas.

Protección de memoria

Una computadora sin memoria virtual aún puede ejecutar muchos programas al mismo tiempo, aunque un programa puede cambiar, accidental o deliberadamente, los datos de otro si sus direcciones apuntan al programa equivocado. La memoria virtual evita esta situación porque un programa nunca "ve" sus direcciones físicas. El administrador de memoria virtual protege los datos de un programa de los cambios de otro.