ALMACENAMIENTO VIRTUAL
La memoria virtual es una técnica de administración de la memoria real que permite al sistema operativo brindarle al software de usuario y a sí mismo un espacio de direcciones mayor que la memoria real o física.
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 física (generalmente en forma de RAM, donde la CPU puede escribir y leer directa y razonablemente rápido) y el disco duro que es mucho más lento, pero también más grande y barato.
Muchas
aplicaciones requieren el 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 elsistema 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. https://www.flickr.com/photos/125236638@N05/sets/72157645629749035/ https://www.youtube.com/watch?v=CaRzQpH_mP8&feature=player_detailpage
