Es un concepto que permite al software usar ms memoria principal
que la que realmente posee el computador. La mayora de los computadores tienen cuatro tipos de memoria: registros en la CPU, Memoria Cache, la memoria fsica y el disco duro que es mucho ms lento, pero tambin ms grande y barato. La memoria virtual es una tcnica que permite la ejecucin de procesos parcialmente cargados en memoria principal Los programas pueden ser ms grandes que la memoria fsica. Se utiliza el disco como almacn secundario de procesos Libera al programador de la preocupacin de que sus programas quepan en memoria La idea es mantener en memoria principal slo los fragmentos de cada proceso que se estn utilizando.
Programas reales en muchos casos no se necesita todo el programa
Cdigo que maneja condiciones de error poco comunes. En muchos casos se reserva ms memoria de la necesaria (vectores, tablas, etc.) Opciones y funciones del programa que se usan con muy poca frecuencia (copias de seguridad, listados especficos, etc.) El sistema operativo selecciona automticamente qu fragmentos del proceso residen en memoria principal PAGINACIN DE DEMANDA: Tcnica ms habitual para implementar memoria virtual Combinar paginacin con intercambio (swap). En
lugar
de
intercambiar
un
proceso
entero,
ahora
slo
intercambiamos algunas pginas Ideal: Cuando un proceso se va a
traer a memoria, el paginador adivine cules son las paginas que va a usar.De esta forma, en lugar de traer a memoria todo el proceso, el paginador slo trae las pginas necesarias De esta forma se evita leer y colocar en la memoria pginas que no se usan, reduciendo de esta forma el tiempo de intercambio y la cantidad de memoria fsica requerida.
Si no tenemos todas las pginas en memoria, cuando se referencia a
una pgina concreta, Cmo saber si est en memoria?. Necesario distinguir entre pginas vlidas (en memoria principal) y no vlidas (slo en disco) Las pginas vlidas/no vlidas se marcan en la tabla de pginas por medio de un bit de validez. Imagen de la Paginacin de Demanda
COPIA DURANTE LA ESCRITURA:
El mecanismo de copia durante la escritura mejora la eficiencia de la memoria fsica al ser utilizada por el gestor de memoria virtual. En el momento en que dos procesos quieren tener copias independientes de un mismo objeto, el gestor de memoria sita una
nica copia compartida en la memoria virtual y activa la propiedad
durante la escritura de esa regin de memoria.
Cuando se est ejecutando un proceso de usuario y si se produce un
fallo de pgina, el SO determina donde reside la pgina deseada dentro del discoDE y entonces SUSTITUCIN PGINA:se encuentra con que no haya ningn marco libre en la lista de marcos libres, toda la memoria est siendo utilizada, para esto se utiliza la tcnica de sustitucin de pginas. Si no hay ningn marco libre, se localiza uno que no est siendo utilizado actualmente y se lo libera.
El mecanismo de sustitucin de pginas es:
- Hallar la ubicacin de la pgina deseada dentro del disco. - Localizar un marco libre. - Si hay un marco libre utilizarlo. - Si no hay seleccionar una vctima (algoritmo de sustitucin). - Escribir el marco de vctima en el disco. - Leer la pgina deseada y cargarla en el marco. - Reiniciar el proceso de usuario.
ASIGNACIN DE LA MEMORIA KERNEL:
El kernel controla la asignacin y sobre-asignacin de memoria, dejando que un programa reserve mas memoria de la que hay disponible, esto no significa que en realidad esta cantidad de memoria se vaya a usar. Uno puede manipular el valor de memory_overcommit en el kernel con los valores 0, 1 o 2. Cada uno de estos valores afectan de la siguiente forma la asignacin de memoria: 1. Se usa heurstica para asignar la memoria, sobre-asignacin de punteros a espacio en memoria son denegados y es usado en la mayora de los sistemas. Este se asegura que la sobreasignacin no se de a niveles brutales pero que al mismo tiempo se reduzca el uso del espacio swap. Al usuario root se le permite que asigne un poco mas de memoria en este modo. este es el modo que la mayora de las instalaciones de linux usan por defecto. 2. Siempre sobre-asigna, es muy apropiado para aplicaciones cientficas.
3.
Nunca sobre-asigna. No se le permite al espacio total de
memoria que exceda el tamao de swap mas un porcentaje configurable (por defecto 50%) de la memoria fsica (RAM). Dependiendo en este porcentaje, en la mayora de las situaciones un proceso no sera matado por usar memoria que ya esta asignada a otro proceso pero dar errores de asignacin de memoria de acuerdo a la situacin.