miércoles, 27 de mayo de 2009

Memoria Virtual

La Memoria Virtual no es sino espacio del disco duro que se utiliza como si fuera memoria RAM. Sin embargo, esta memoria virtual tiene varios inconvenientes; el principal es su velocidad, ya que es muchísimo más lenta que la RAM. Mientras la velocidad de acceso a la RAM se mide en nanosegundos (ns, la 0,000000001 parte de un segundo), la de los discos duros se mide en milisegundos; es decir, que se tarda casi un millón de veces más en acceder a un dato que encuentra en el disco duro que a uno de la RAM. Es una técnica que simula más memoria que la que realmente existe y permita a la computadora ejecutar varios programas simultáneamente, sin importar su tamaño. El sistema de memoria virtual corta el programa en segmentos llamados "páginas". En lugar de llevar el programa entero a memoria, lleva tantas páginas a memoria como pueden caber, basándose en la mezcla actual de programas, y deja las restantes páginas en el disco. Cuando se requieren instrucciones que no están en memoria, la página de disco apropiada es llamada, superponiéndose a la página en memoria. Si una página de memoria contiene variables u otros datos que son alterados por la ejecución del programa, la página es temporalmente almacenada en disco cuando se requiere alojamiento para las nuevas páginas. La entrada y la salida de páginas de programa son llamados paging (paginado) o swapping (intercambio o transferencia). Con el objeto de obtener un máximo provecho de las técnicas de memoria virtual, los programas no deberían contener mucho "código spaghetti", en el cual la lógica del programa apunta atrás y adelante, hacia extremos opuestos del programa. Si lo hacen, resultaría una cantidad excesiva de accesos a disco para traer los segmentos del programa. El acceso a disco debería reservarse para llamar el próximo conjunto de datos, no las mismas instrucciones una y otra vez. Si bien la memoria virtual puede ser realizada en software, para una operación eficiente la memoria virtual requiere características de hardware especializadas. Los programas de aplicación a veces demandan capacidad de memoria virtual, pero solamente usan algunas técnicas de intercambio para ejecutar programas grandes, no verdadera memoria virtual. En la memoria RAM se tienen los cachés de varios dispositivos lentos del sistema, además se cargan allá los programas, instrucciones, programas controladores de diferentes dispositivos, etc., pero entre tanta información que se almacena en la RAM, esta puede quedar saturada. Sin embargo en la realidad esto no sucede. Para ejemplificar, el común de las computadoras que se hallan trabajando con varias aplicaciones simultáneamente, tienen cargado varios mega bytes entre programas, instrucciones y datos, inclusive más de lo que físicamente la computadora puede soportar. ¿Cómo es que una computadora puede hacer esto?, bueno el proceso técnicamente se denomina paginación, y emplea una porción del disco duro para almacenar la información que no cabe en la memoria RAM. El sistema operativo se encarga de mover la información que no cabe y no se está utilizando, al disco duro y a la inversa es decir, la información que se requiere, del disco duro a la RAM. Así, Windows 95/98/NT/2000 también maneja una memoria virtual en el disco duro. El acceso a la configuración de la memoria virtual en Windows 95 es similar al indicado para el caché del CD-ROM y del caché del disco duro. Sin embargo, y por lo general, es el mismo sistema operativo el que se halla administrando la memoria virtual. Solo bajo condiciones muy fuera de lo común es conveniente ajustar manualmente estos parámetros, la mayoría de las veces permitir que Windows 95 maneje directamente la memoria virtual es la mejor elección.

No hay comentarios:

Publicar un comentario en la entrada