La memoria virtual es una
técnica de gestión de la memoria que permite que el sistema operativo disponga,
tanto para el software de usuario como para sí mismo, de mayor cantidad de
memoria que esté disponible físicamente. La mayoría de los ordenadores tienen
cuatro tipos de memoria: registros en la CPU, la memoria caché (tanto dentro
como fuera del CPU), la memoria RAM y el disco duro. En ese orden, van de menor
capacidad y mayor velocidad a mayor capacidad y menor velocidad.
Muchas aplicaciones
requieren acceso a más información (código y datos) que la que se puede
mantener en memoria física. Esto es así sobre todo cuando el sistema operativo
permite múltiples procesos y aplicaciones ejecutándose simultáneamente. Una
solución al problema de necesitar mayor cantidad de memoria de la que se posee
consiste en que las aplicaciones mantengan parte de su información en disco,
moviéndola a la memoria principal cuando sea necesario. Hay varias formas de
hacer esto.
Una opción es que la
aplicación misma sea responsable de decidir qué información será guardada en
cada sitio (segmentación), y de traerla y llevarla. La desventaja de esto,
además de la dificultad en el diseño e implementación del programa, es que es
muy probable que los intereses sobre la memoria de dos o varios programas
generen conflictos entre sí: cada programador podría realizar su diseño
teniendo en cuenta que es el único programa ejecutándose en el sistema. La
alternativa es usar memoria virtual, donde la combinación entre hardware
especial y el sistema operativo hace uso de la memoria principal y la secundaria
para hacer parecer que el ordenador tiene mucha más memoria principal (RAM) que
la que realmente posee. Este método es invisible a los procesos. La cantidad de
memoria máxima que se puede hacer ver que hay tiene que ver con las
características del procesador. Por ejemplo, en un sistema de 32 bits, el
máximo es 232, lo que da 4096 Megabytes (4 Gigabytes). Todo esto hace el
trabajo del programador de aplicaciones mucho más fácil, al poder ignorar
completamente la necesidad de mover datos entre los distintos espacios de
memoria. Aunque la memoria virtual podría estar implementada por el software
del sistema operativo, en la práctica casi siempre se usa una combinación de
hardware y software, dado el esfuerzo extra que implicaría para el procesador.
0 comentarios:
Publicar un comentario