2. FUNDAMENTOS
• La técnica de Memoria Virtual es un mecanismo que permite la ejecución de
procesos que no se encuentran completamente en la memoria.
• Una ventaja es que los programas pueden tener un tamaño mayor que la
propia memoria física
• La memoria virtual no resulta fácil de implementar y puede reducir
sustancialmente el rendimiento del sistema si se la utiliza sin el cuidado.
3. Fundamentos
• La posibilidad de ejecutar un programa que sólo se encontrará parcialmente en
la memoria proporciona muchas ventajas:
• Los programas ya no estarán restringidos por la cantidad de memoria
física disponible, se podrán escribir programas para un espacio de
direcciones virtual extremadamente grande.
• Cada programa de usuario podría ocupar menos memoria física, se
podrán ejecutar más programas al mismo tiempo.
• Se necesitarían menos operaciones de E/S para cargar o intercambiar
cada programa de usuario con el fin de almacenarlo en memoria.
4. PAGINACIÓN BAJO DEMANDA
¿Cargarse un programa ejecutable desde el Disco a la Memoria?
• Cargar el programa completo en memoria física en el momento de ejecutar el
programa puede que no necesitemos inicialmente todo el programa en la
memoria.
• Otra opción es cargar las páginas únicamente cuando sean necesarias ésta
técnica se llama paginación bajo demandapaginación bajo demanda y se utiliza en los sistemas de
memoria virtual.
• Solo se cargan las páginas cuando así se solicita durante la ejecución del
programa por tanto las páginas a las que nunca se acceda no llegaran a
cargarse en la memoria física.
• Cuando se quiere ejecutar un proceso, se realiza un intercambio para cargarlo
en memoria pero no se intercambia el proceso completo sino mas bien se
utiliza un intercambiador perezosointercambiador perezoso
5. PAGINACIÓN BAJO DEMANDA
• El intercambiador perezoso jamás intercambia una página con la memoria a menos
que ésta vaya a ser necesaria, reduciendo así el tiempo de carga y la cantidad de
memoria física utilizada
• Es necesario dejar claro una diferencia un intercambiador manipula procesos
completos. Mientras que un paginadorpaginador sólo se ocupa de las páginas individuales de
un proceso.
• Al momento de cargar un proceso, el paginador realiza una estimación de que
páginas serán utilizadas antes de descargar de nuevo el proceso.
• Se necesita un soporte Hardware para distinguir entre las páginas que se encuentran
en memoria y las páginas que residen en disco, para esto se usa un bit válido- inválido
• Cuando se configura este bit como “válido”, la página asociada será legal (memoria).
• Cuando se configura este bit como “inválido”, la página no es válida y está
actualmente en el disco.
6. SUSTITUCIÓN DE PÁGINAS• Cuando se está ejecutando un proceso de usuario y si se produce un fallo de página, el SO
determina donde reside la página deseada dentro del disco y entonces se encuentra con que no
haya ningún marco libre en la lista de marcos libres, toda la memoria esta siendo utilizada, para
esto se utiliza la técnica de sustitución de páginas
• Si no hay ningún marco libre, se localiza uno que no esté siendo utilizado actualmente y se lo
libera.
• El mecanismo de sustitución de páginas es:
• Hallar la ubicación de la página deseada dentro del disco.
• Localizar un marco libre.
• Si hay un marco libre utilizarlo
• Si no hay seleccionar una víctima (algoritmo de sustitución)
• Escribir el marco de víctima en el disco.
• Leer la página deseada y cargarla en el marco
• Reiniciar el proceso de usuario.
7. SUSTITUCIÓN DE PÁGINAS FIFO
• Asocia cada página al instante en que dicha página fuera cargada en memoria.
• Cuando hace falta sustituir una página se elige la páginas más antigua.
• Se crear un cola FIFO para almacenar todas las páginas en memoria y sustituir la página
situada al principio de la cola.
• Es fácil de entender y de programar
• Su rendimiento no siempre es bueno.
• La página sustituida puede ser un módulo de inicialización que ya no será necesario pero
también puede ser una variable muy utilizada.
• Anomalía de Belady la tasa de fallos de página puede incrementarse a medida que se
incrementa el número de marco asignados.
9. Sustitución de Óptima de Páginas
• Un algoritmo óptimo de sustitución es aquel que por lo general tiene la tasa más baja de
fallos entre todos los algoritmos y que nunca está sujeto a la anomalía de Belady.
• Sustituir la página que no vaya a ser utilizada durante el período de tiempo más largo.
• Difícil de implementar porque requiera un conocimiento futuro de la cadena de
referencia.
10. Sustitución de Páginas LRU
• Sustituir la página que no haya sido utilizada durante el período más largo de tiempo.
• Menos recientemente utilizada.
• LRU asocia con cada página el instante correspondiente al último uso de dicha página.
• El problema es como implementar este algoritmo
11. Asignación de Marco
¿Cómo asignamos la cantidad fija de memoria libre a los procesos?
No podemos por ejemplo asignar un número de marcos superior al número
total de marcos disponibles
Debemos asignar al menos un número mínimo de marcos (rendimiento)
A medida que el número de marcos asignados a un proceso se reduzca se
incrementa el número de fallos.
El número mínimo de marco esta definido por la arquitectura informática
La formas más fácil de repartir m marcos entre n procesos es dar a dar uno un
número igual de marcos (asignación equitativa)
m/n
12. Asignación de Marco
Otra alternativa es darse cuenta que los diversos procesos necesitan
cantidades diferentes de memoria
Asignación Proporcional asignando la memoria disponible a cada proceso
de acuerdo al tamaño de éste.
S = ΣSi
ai = si /S * m
De esta forma, ambos procesos compartirán los marcos disponibles de
acuerdo a sus necesidades, en lugar de repartir los marcos equitativamente.
13. Asignación de Marco
Asignación Global y Local
Sustitución Global: permite que un proceso seleccionar un marco de
sustitución de entre el conjunto de todos los marcos disponibles, incluso
si dicho marco esta asignado a otro proceso.
Sustitución Local: cada proceso solo efectúa esa selección entre su
propio conjunto de marcos asignados
14. Sobrepaginación
Si un proceso no dispone de suficientes marcos generará
rápidamente fallos de página.
Deberá sustituir alguna página sin embargo como todas sus
páginas se están usando activamente se verá forzado a sustituir una
página que volverá a ser utilizada enseguida.
Volverá a generar otro fallo de página
Esta alta tasa de paginación se conoce como sobrepaginación
Un proceso entrará en sobrepaginación cuando invierte más tiempo generando
fallos de página que en la ejecución propia del proceso
Provoca problemas de rendimiento