Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Memoria Virtual PDF
Memoria Virtual PDF
1
Memoria virtual
La memoria virtual es una técnica que
permite la ejecución de procesos
parcialmente cargados en memoria principal
Los programas pueden ser más grandes que
la memoria física
Se utiliza el disco como almacén secundario
de procesos
Libera al programador de la preocupación de
que sus programas quepan en memoria
La idea es mantener en memoria principal
sólo los fragmentos de cada proceso que se
estén utilizando
2
Memoria virtual
3
Memoria virtual
4
Memoria virtual
5
Memoria virtual
6
Memoria virtual: esquema general
7
Paginación por demanda
(demand paging)
Técnica más habitual para implementar memoria
virtual
Combinar paginación con intercambio (swap)
En lugar de intercambiar un proceso entero, ahora sólo
intercambiamos algunas páginas
Ideal:
Cuando un proceso se va a traer a memoria, el paginador
“adivine” cuales son las paginas que va a usar
De esta forma, en lugar de traer a memoria todo el proceso, el
paginador sólo trae las páginas necesarias
De esta forma se evita leer y colocar en la memoria páginas que
no se usan, reduciendo de esta forma el tiempo de intercambio y
la cantidad de memoria física requerida
8
Paginación por demanda
9
Paginación por demanda
10
Paginación por demanda: la idea
11
Fallo de página
12
Gestión de un fallo de página
13
Explicación del diagrama
anterior
1.- Acceso a la tabla de páginas donde se observa que el bit de validez
indica que no está en memoria => Page _Fault
2.- Guardar los registros del usuario y el estado del proceso
3.- Determinar que la interrupción fue un fallo de página (vector de
interrupciones)
4.- Verificar que la referencia a la página fue válida (el SO consulta una
tabla interna, que usualmente se guarda con el BCP del proceso). Si la
referencia no es válida, se termina el proceso. Si era válida pero todavía
no se ha traído esa página, se determina la posición de la página en el
disco (información que también estará en el BCP) y procedemos a traerla.
5.- Encontramos un marco libre y planificamos una operación de disco
para leer la página deseada y colocarla en el marco recién asignado
6.- Durante la espera, asignar la CPU a algún otro usuario (opcional)
14
Explicación del diagrama
anterior (2)
7.- Interrupción del disco (E/S terminada)
8.- Guardar los registros y el estado de proceso del otro usuario (si
se ejecutó el paso 6)
9.- Determinar que la interrupción provino del disco
10.- Corregir la tabla interna que se guarda junto con el proceso y
la tabla de páginas, de modo que indiquen que la página ya está
en memoria
11.- Esperar que la CPU se asigne otra vez a este proceso
12.- Restaurar los registros de usuario, el estado del proceso y la
nueva tabla de páginas, y reanudar la instrucción interrumpida
15
Paginación por demanda
Caso extremo:
Paginación por demanda pura
Nunca se trae una página a memoria si no se necesita
Ejecución de una instrucción
Puede generar más de un fallo de página (una página para la
instrucción y muchas para los datos)
Problema: rendimiento disminuye considerablemente al
aumentar el nº de fallos de página
Sin embargo, la localidad en los programas hace que
el rendimiento de la paginación por demanda sea
razonable
16
Paginación por demanda: ventajas
17
Reanudación de instrucciones
18
Reanudación de instrucciones
19
Algoritmos de gestión de memoria
virtual
Para la implementación de la paginación por
demanda, el SO debe implementar:
Algoritmo de asignación de marcos
Si tenemos varios procesos en memoria es necesario decidir
cuantos marcos se asignan a cada uno
Algoritmo de reemplazo de páginas
Proceso básico
1.- Atender la interrupción de fallo de página
2.- Traer la página a memoria y colocarla en un marco libre
3.- Reiniciar el proceso
¿Y si no hay marcos libres? Reemplazo de páginas
20
Algoritmo de reemplazo
21
Bit de modificación
Problema:
Si no hay marcos libres se requieren dos
transferencias de páginas
Este gasto extra puede reducirse empleando un
bit de modificación o bit sucio
El hardware pone a 1 el bit de modificación de una
página siempre que se escribe una palabra o byte de la
página
22
Algoritmos de reemplazo: cómo
evaluarlos
Objetivo: Frecuencia de fallos de página sea lo más
baja posible
Evaluamos un algoritmo ejecutándolo con una serie
específica de referencias y calculando el número de
fallos de página
La serie de referencias las podemos generar forma aleatoria o
rastreando la ejecución de un sistema dado y registrando la
dirección de cada referencia a la memoria
Para una serie de referencias determinadas y un
algoritmo concreto, determinar el número de fallos de
página requiere conocer el número de marcos de los
que se dispone en el sistema
23
Ejemplo de cadena de referencias
1,4,1,6,1,6,1,6,1,6,1
24
Algunos algoritmos de
reemplazo
Básicos
FIFO
OPTIMO
LRU – least recently used
Aproximaciones LRU
LRU con bits de referencia adicionales
LRU de segunda oportunidad o del reloj
LRU de segunda oportunidad mejorado
De conteo
LFU – less frequently used
MFU – most frequently used
25
Algoritmo FIFO
1. FIFO
Se sustituye la página residente que lleve más tiempo en
memoria
Fácil de implementar (cola FIFO de páginas)
Problema: al no tener en cuenta la historia del uso de una
página dada, FIFO puede prescindir de páginas a las que se
accede con frecuencia
Padece la anomalía de Belady (fenómeno paradójico
consistente en que aumenta el número de fallos de páginas
cuando se asignan más páginas reales al proceso)
Propiedad de pila: para cualquier punto en la cadena de
referencia, el conjunto de páginas en N marcos de página es
un subconjunto del que se formaría en N+1 marcos de página
26
Ejemplo: FIFO
27
Efecto Belady
28
Algoritmo de reemplazo óptimo
2. Óptimo
Escoger como víctima la página que más tarde en
volver a ser accedida
Es el algoritmo que presenta la frecuencia de
fallos de página más baja de todos
No implementable (requiere presciencia)
Útil como referencia de comparación
29
Ejemplo: óptimo o mínimo
30
Algoritmo LRU
31
Ejemplo: LRU
32
Aproximaciones a la LRU
4. Aproximación a LRU
Tanto el reemplazo óptimo como el LRU no padecen
la anomalía de Belady
Las técnicas basadas en LRU utilizan un bit de
referencia puesto por el hardware
El hardware enciende el bit de referencia de una
página cada vez que se hace referencia a ella (lectura
o escritura)
Examinando este bit no conoceremos el orden de uso,
pero sí sabemos cuáles páginas se usaron y cuales
no
33
Varios bits de referencia
34
Algoritmo 2ª oportunidad o del
reloj
4.2. Algoritmo de segunda oportunidad o algoritmo
del reloj
FIFO teniendo en cuenta el bit de referencia
Si el valor es cero, reemplazamos la página, pero si
es 1, le damos una segunda oportunidad, ponemos
su bit de referencia a cero y seleccionamos la
siguiente página FIFO
Una forma de implementar el algoritmo de segunda
oportunidad es con una cola circular
= FIFO si todos los bits están encendidos
35
Algoritmo 2ª oportunidad o del
reloj
36
2ª oportunidad, mejorado
37
Algoritmos de conteo: LFU, MFU
5. Algoritmos de conteo
Contador del número de referencias
5.1. Algoritmo LFU: menos frecuentemente usadas (cuenta
más baja) son las reemplazadas
Problema: páginas que se usaron mucho durante la fase inicial
del proceso y luego no se vuelven a usar
Solución: Desplazar las cuentas un bit a la derecha a intervalos
regulares
Problema serio: páginas traídas recientemente, alta probabilidad
de salir (cuenta baja)
5.2. Algoritmo MFU: más frecuentemente usada (cuenta más
alta) es la reemplazada, para evitar el problema anterior
Problema: se pueden mantener páginas viejas a las que no se
accede
38
Algoritmos de reemplazo:
resumen
Problemas Hardware y/o ED
necesarios
FIFO El peor resultado (mayor tasa de Anomalía de Belady Lista encadenada de páginas
fallos de página)
Optimo El mejor resultado (menor tasa No implementable
de fallos de página)
LRU Demasiada información + Contador (timestamp) en TP o
hardware pila
Aprox. LRU con El SO debe interrumpir y Bits de referencia en TP
bits referencia desplazar los bits referencia
Aprox. LRU de Bit de referencia en TP + lista
2ª oportunidad circular
Aprox. LRU de Selecciona la página que menos Se necesitan varias batidas en la Bit de referencia en TP + lista
2ª oportunidad tiempo se tarda en reemplazar y lista circular circular
mejorado que se ha utilizado menos
recientemente
LFU La últimas páginas introducidas Contador en TP
recientemente están
continuamente reemplazándose
MFU Las páginas mas “populares” se Contador en TP
reemplazan
39
Campos en la tablas de páginas
Memoria Memoria Virtual
Paginada
Marco obligatorio obligatorio
Validez obligatorio
Sucio opcional
Bloqueo opcional
40
Paginación por demanda:
mejoras en el reemplazo
Reserva de marcos libres: % de marcos
libres para no esperar a que las víctimas se
escriban en disco
Recordar qué páginas están en los marcos
libres
Descargar en disco las páginas modificadas
en segundo plano
41
Asignación de marcos a los
procesos
Reserva de marcos
Es conveniente definir un sistema de reparto de los
marcos a los procesos en ejecución
Todo proceso debería tener una reserva mínima de
marcos (depende del repertorio de instrucciones)
¿Cómo asignar los marcos a los procesos?
Reparto alícuoto
Reparto proporcional (por tamaño, por prioridad)
Reemplazo ¿global o local?
42
Tipos de reemplazo
Reemplazo local/global
El conjunto de páginas candidatas a sustituir está/no está
restringido al proceso que provoca la carencia de página
Reemplazo global
Un mismo proceso podría tener un rendimiento muy
diferente a causa de circunstancias puramente externas
Reemplazo local
Podría obstaculizar la ejecución de un proceso al no
permitirle aprovechar otras páginas de memoria de poco uso
El reemplazo global generalmente aumenta el
rendimiento del sistema y es el método más utilizado
43
Hiperpaginación y área activa
44
Hiperpaginación y área activa
Si el grado de multiprogramación es
excesivo, el sistema puede estar más tiempo
paginando que haciendo trabajo productivo
(hiperpaginación)
¿cómo evitarla?
Políticas de reemplazo local
la hiperpaginación de un proceso puede afectar al
resto
Concediendo memoria según las necesidades
reales (localidades, área activa...)
45
Modelo de localidades
46
Área activa (working set)
47
Área activa
48
Área activa: cómo aplicarla en la
gestión de memoria virtual
El SO vigila el área activa de cada proceso y le asigna
un número de marcos igual a su tamaño
Si hay suficientes marcos adicionales, se puede iniciar
otro proceso
Si la suma de los tamaños de las áreas activas
aumenta hasta exceder el número total de marcos
disponibles, el SO seleccionará un proceso para
suspenderlo
La estrategia del área activa evita la hiperpaginación
al tiempo que mantiene el grado de multiprogramación
lo más alto posible
49
¿Cómo detectar las áreas
activas?
Lo difícil del modelo del área activa es cómo sabe el SO cuál es el
área activa de un proceso en cada momento
Implementación
El área activa se puede estimar utilizando el bit de referencia, de
forma similar a la LRU
A intervalos regulares, los bits de referencia de las páginas
residentes pueden ser registrados (nº de bits históricos) y
borrados
De esta forma tenemos una especie de historial de uso
50
Frecuencia de fallos de página
(PFF)
Podemos establecer límites superiores e inferiores para
la frecuencia de fallos de página deseada
Si la PFF de un proceso es muy baja, le quitamos
páginas; si es muy alta, le damos más páginas
Si la PFF global aumenta y no hay marcos libres,
seleccionamos un proceso y lo suspendemos
Los marcos de página se repartirán entre los procesos
que tengan fallos de página muy frecuentes
51
Prepaginación
52
Tamaño de página óptimo
53
Influencia de la estructura del
código
Estructura de los programas
La forma en que se accede a los datos
Las estructuras de datos que se emplean
Cómo se estructura el código (el compilador y el
cargador también pueden tener efecto sobre la
paginación)
El lenguaje de programación (la localidad es mejor en
lenguajes con uso restringido de punteros)
Influyen en el rendimiento de la memoria virtual
54
Otras consideraciones
55
Otras técnicas: segmentación por
demanda
Segmentación por demanda
La unidad de gestión es el segmento
Ej: OS/2 en el Intel 80286
56
Memoria virtual: sumario
Estrategias
Paginación bajo demanda
•FIFO •LRU bits adicionales •LFU
Algoritmos de reemplazo de páginas •OPT •LRU 2ª oport. •MFU
•LRU •LRU 2ª oport. mejorado
Mejoras
Reserva de marcos libres
• Reemplazo local
Evitar Hiperpaginación • Localidades/área activa
• Frecuencia de fallos de página
Otras consideraciones
Prepaginación
Tamaño de página
Estructura de los programas
Interbloqueo de E/S con DMA
57