Documente Academic
Documente Profesional
Documente Cultură
Ir a la navegaci�nIr a la b�squeda
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.
�ndice
1 Operaci�n
2 Detalles
3 Paginaci�n y memoria virtual
4 V�ase tambi�n
Operaci�n
Cuando se usa memoria virtual, o cuando una direcci�n es le�da o escrita por la
CPU, una parte del hardware dentro de la computadora traduce las direcciones de
memoria generadas por el software (direcciones virtuales) en:
Debido a que s�lo la parte de memoria virtual que est� almacenada en la memoria
principal es accesible a la CPU, seg�n un programa va ejecut�ndose, la proximidad
de referencias a memoria cambia, necesitando que algunas partes de la memoria
virtual se traigan a la memoria principal desde el disco, mientras que otras ya
ejecutadas, se pueden volver a depositar en el disco (archivos de paginaci�n).
Detalles
La traducci�n de las direcciones virtuales a reales es implementada por una Unidad
de Manejo de Memoria (MMU). El sistema operativo es el responsable de decidir qu�
partes de la memoria del programa es mantenida en memoria f�sica. Adem�s mantiene
las tablas de traducci�n de direcciones (si se usa paginaci�n la tabla se denomina
tabla de paginaci�n), que proveen las relaciones entre direcciones virtuales y
f�sicas, para uso de la MMU. Finalmente, cuando una excepci�n de memoria virtual
ocurre, el sistema operativo es responsable de ubicar un �rea de memoria f�sica
para guardar la informaci�n faltante, trayendo la informaci�n desde el disco,
actualizando las tablas de traducci�n y finalmente continuando la ejecuci�n del
programa que dio la excepci�n de memoria virtual desde la instrucci�n que caus� el
fallo.
El hardware que tiene soporte para memoria virtual, la mayor�a de la veces tambi�n
permite protecci�n de memoria. La MMU puede tener la habilidad de variar su forma
de operaci�n de acuerdo al tipo de referencia a memoria (para leer, escribir, o
ejecutar), as� como el modo en que se encontraba el CPU en el momento de hacer la
referencia a memoria. Esto permite al sistema operativo proteger su propio c�digo y
datos (como las tablas de traducci�n usadas para memoria virtual) de corromperse
por una aplicaci�n, y de proteger a las aplicaciones que podr�an causar problemas
entre s�.