Gestin de la Memoria
Ral Monge
Departamento de Informtica
La Memoria
La memoria es un arreglo de palabras o bytes, identificados por su direccin Ejecucin de una instruccin de mquina requiere:
Bsqueda de la instruccin (siempre) Bsqueda de operandos (no siempre) Almacenamiento de resultados (no siempre)
La unidad de memoria slo ve un flujo de referencias a direcciones fsicas de la memoria (no sabe cmo se generan y qu representan)
Departamento de Informtica 4
Ral Monge
Ligado de Direcciones
Tiempo de Compilacin. Es posible si se conoce a priori la direccin absoluta donde residir el programa. Tiempo de Enlace. Permite resolver direcciones entre diferentes mdulos. Mdulos deben poseer cdigo reubicables. Tiempo de Carga. Se ajustan direcciones de acuerdo a la zona de memoria donde se cargar. Tiempo de Ejecucin. Se se permite el movimiento de segmentos de memoria, se requiere de este tipo de ligado, que requiere de soporte de hardware especial.
Ral Monge Departamento de Informtica 5
Objeto Objeto
Objeto Objeto
Ral Monge Departamento de Informtica 6
Proceso de Carga
Tiempo de Carga Tiempo de Ejecucin
Cargador Cargador
Ral Monge
Departamento de Informtica
Direccin lgica (tb. direccin virtual) es el tipo de referencias que usa un programa. Direccin fsica es el tipo de referencias que usa la unidad de memoria.
traduccin traduccin
Ral Monge
Departamento de Informtica
Esquema de la Memoria
CPU
MMU
E/S E/S
Bus Bus
Controlador
Memoria Principal
9
Ral Monge
Departamento de Informtica
MMU Simple
CPU
Registro de Reubicacin base base Direccin Lgica dir dir base dir Direccin Fsica
Memoria
+ +
MMU
Ral Monge
Departamento de Informtica
10
a) Overlays
Si no hay suficiente memoria, programa puede ser estructurado en trozos independientes, tal que ellos no requieren estar simultneamente en memoria. Evaluacin de la tcnica de overlay
permite ejecutar un programa con un espacio de memoria fsica menor que el espacio de memoria lgica. No requiere soporte del Sistema Operativo Es difcil organizar un programa, por lo que su uso es limitado.
Ral Monge
Departamento de Informtica
12
Ejemplo de Overlay
Tabla de Smbolos
Paso 2
Ral Monge
Departamento de Informtica
13
b) Carga Dinmica
Un mdulo (o rutina) no se carga hasta que sea llamada por el programa (e.g. DLL en Windows)
Mdulos se mantienen en disco en formato reubicable Ligado a este tipo de mdulo requiere chequear en una llamada si ste se encuentra cargado en memoria. Si no est cargado, editor de enlace debe invocarse para cargarlo, actualizando tablas de direcciones.
Mejor desempeo al no cargar mdulos no referenciados. No requiere soporte especial del SO, que puede apoyar con funciones especiales carga dinmica.
Departamento de Informtica 14
Ral Monge
c) Enlace Dinmico
Sistemas tradicionales slo proveen enlace esttico a funciones de biblioteca. Bibliotecas compartidas permiten que el enlace se postergue hasta despus de la carga. Permite ahorrar espacio de disco y memoria. Se requiere enlazar estticamente slo un stub por funcin
Stub verifica si la funcin est cargada en memoria Si no la est debe cargarla, pudiendo reemplazar en la tabla direccin del stub por la de la funcin, habilitando accesos directos.
Facilita mantencin de bibliotecas Requiere soporte del SO para compartir memoria entre diferentes procesos.
Ral Monge
Departamento de Informtica
15
a) Mquina Desnuda
Caractersticas:
El usuario tiene control total sobre todo el espacio de direcciones (y los recursos) del sistema No existe sistema operativo No se requiere hardware especial Muy flexible y simple
sistemas
Departamento de Informtica
17
b) Monitor Residente
Ubicacin del vector de interrupciones determina posicin del Sistema Operativo Se requiere hardware especial si se quiere proteger al Sistema Operativo Reubicacin de programas es bien soportada con traduccin dinmicas de direcciones.
Departamento de Informtica 18
Ral Monge
Usuario2 Usuario1
Libre
Ral Monge Departamento de Informtica 19
+ +
lim lim
Registro Lmite
<
Ral Monge
NO
TRAP MMU
21
Departamento de Informtica
Observaciones
Registro Base y Registro Lmite son parte del contexto de un proceso. Estos registros slo pueden ser modificados en modo supervisor. Este soporte es adecuado para manejar mltiples particiones de la memoria para soportar multiprogramacin El sistema operativo tambin puede cambiar su tamao, sin afectar a los programas usuarios
Departamento de Informtica 22
Ral Monge
Monitor 2K 6K
2K 1K 2K 5K 3K 4K
7K 11K 8K
12K
Ral Monge
Departamento de Informtica
24
best--fit-only. Particiones de diferentes tamao con una cola para cada particin.
Trabajos se colocan en la cola de la particin que mejor calzan
de
Si el proceso no ocupa toda la memoria asignada en la particin, se produce fragmentacin interna. Si existen particiones libres donde no calza ningn trabajo en espera, se produce fragmentacin externa. Problemas:
Fragmentacin interna y externa causan uso poco eficiente de la memoria. Difcil determinar a priori el tamao de los procesos
Ral Monge
Departamento de Informtica
26
Objetivo: minimizar fragmentacin interna y externa SO mantiene tablas con particiones asignadas y libres. Particiones para los procesos se crean dinmicamente bajo demanda (cuando se carga el trabajo en una particin libre de tamao adecuado) Usa el mismo hardware que particiones fijas, pero otro SO.
Departamento de Informtica 27
Ral Monge
Ejemplo
170 200 P3
Departamento de Informtica
Observaciones
Ntese que despus de un tiempo de trabajo se produce una dispersin de la memoria libre y ocupada. Bloques libres podran fundirse en un solo bloque
Ral Monge
Departamento de Informtica
29
First-Fit: Cargar en la primera particin libre de tamao suficiente (sencillo y rpido) Best-Fit: Cargar en la particin libre que mejor calza (produce fragmentos libres pequeos) Worst-Fit: Cargar en el fragmento libre mayor donde calza (produce grandes fragmentos libres)
Ral Monge
Departamento de Informtica
30
10
En general, en estado estacionario, si existen N particiones asignadas, entonces tambin existirn N particiones libres con tamao promedio igual a la mitad de un programa. Por lo tanto, 1/3 de la memoria se desperdicia. Esta propiedad se conoce como la regla del 50%
Ral Monge
Departamento de Informtica
31
Se generan una serie de fragmentos de memoria libre entre cada par de particiones ocupadas consecutivas, cuyo tamao no acepta otro trabajo.
Solucin: Compactacin
Ral Monge Departamento de Informtica 32
Fragmentacin interna SI NO
Ral Monge
Departamento de Informtica
33
11
Compactacin
Consiste en unir todos los bloques libres de memoria en una sola particin. Se requiere soporte de reubicacin dinmica de programas:
mover los bloques y ajustar registros base y lmite
Ral Monge
Departamento de Informtica
34
Cundo compactar?
Criterios:
Ral Monge
Departamento de Informtica
35
Ejemplo de Compactacin
0 S.O. 300 P1 500 P2 600 600 P3 800 1000 1200 1500 P4 1900 2100 2100 Mueve 600K Ral Monge 2100 1900 2100 P3 P3 1200 P4 1000 P3 1200 1500 P4 300 P1 0 S.O. 300 P1 500 P2 600 P4 P2 600 500 P2 0 S.O. 300 P1 0 S.O.
Compactar 500
Mueve 400K
Mueve 200K
36
Departamento de Informtica
12
Optimizar la compactacin requiere de algoritmos ms inteligentes Se puede combinar swapping con particiones dinmicas para generar espacios libres. Sin embargo, la fragmentacin externa en particiones dinmicas puede ser reducida, pero no eliminada. En la gestin del espacio de memoria de disco surgen problemas de fragmentacin similares a los definidos en particiones dinmicas.
Departamento de Informtica 37
Ral Monge
d) Swapping
Concepto de Swapping
Un proceso para que se pueda ejecutar debe estar cargado en memoria principal. Un proceso puede ser temporalmente sacado de la memoria (swap-out), para despus volverlo a traer a la memoria (swap-in), y para continuar su ejecucin. Para sacar un proceso se requiere de un dispositivo rpido de respaldo en memoria secundaria (tpicamente un disco), donde se mantienen imgenes de memoria de los procesos.
Departamento de Informtica 39
Ral Monge
13
Ejemplo de Swapping
Sistema Operativo
1) Swap-out
Proceso P1
Proceso P2
Ral Monge
Departamento de Informtica
40
Ejemplo de Clculo
Procesos de 1 [MB] Swap-in o swap-out demora 1008 [ms] c/u Significa que si se tiene un solo proceso en memoria, existira 2,016 [s] sin asignar la CPU Por lo tanto, el cuanto de tiempo debiera ser mucho mayor que 2 [s]
Departamento de Informtica 41
Ral Monge
Aplicaciones de Swapping
Primeros sistemas interactivos (Q-32) usaban swapping con un solo proceso en memoria Llegada de un proceso ms prioritario requiere crear espacio de memoria, sacando alguno de ms baja prioridad de memoria si no hay espacio. Se puede usar para reducir carga sobre el sistema (ver planificacin de mediano plazo)
Ral Monge
Departamento de Informtica
42
14
Mecanismo de traduccin de direcciones lgica determina si es posible traer el proceso a otra zona de memoria (requiere reubicacin dinmica) Usualmente no se pueden sacar procesos que tienen solicitudes pendientes:
Swap-out slo si el proceso est inactivo Usar buffering en el SO
Latencia de swapping se puede amortiguar si se mantienen en memoria varios procesos (e.g. particiones dinmicas)
Departamento de Informtica 43
Ral Monge
Motivacin
Los esquemas anteriores sufren de fragmentacin, principalmente porque requieren de asignacin contigua, haciendo un mal uso de la memoria Una alternativa sera:
Dividir el espacio de memoria de un programa en varias partes ms pequeas Permitir que estas partes se carguen en cualquier parte libre de la memoria (no contigidad fsica) Usar un mecanismo de traduccin que mantenga la contigidad lgica del programa
Ral Monge Departamento de Informtica 45
15
a) Paginacin
Concepto de Paginacin
Programas se dividen en unidades pequeas de memoria de tamao fijo, denominadas pginas (tamao es normalmente una potencia de 2). La memoria fsica se divide en unidades del mismo tamao, denominadas marcos de pgina (page frames). Cualquier pgina puede ser cargada en cualquier marco de pgina libre (no necesariamente contiguo). A los programas se les puede asignar memoria bajo demanda
Ral Monge
Departamento de Informtica
47
Ral Monge
Departamento de Informtica
16
Mecanismo de Traduccin
Se requiere de una tabla de pginas (PT) para cada proceso, donde se pueda asociar a cada pgina con el marco correspondiente. Se requiere hardware especial (MMU) para establecer eficientemente en tiempo de ejecucin una asociacin entre pgina y marco. Sistema Operativo debe tambin mantener informacin sobre marcos libres (Tabla de Marcos)
Departamento de Informtica 49
Ral Monge
Estructura de Direcciones
Direccin Lgica (DL) p d p d f : # de pgina : offset : # de marco
Direccin Fsica
Ral Monge
p = DL div P d = DL mod P
50
Ejemplo de Direcciones
Supongamos: tamao de direccin lgica: tamao de pgina: m bits P = 2n bits
Direccin Lgica p d
m-n bits
Ral Monge
n bits
Departamento de Informtica
17
Registro PTBR b p
+
f
Ral Monge
Departamento de Informtica
52
Observaciones
El usuario ve un espacio contiguo de direcciones lgicas. Slo para el S.O. es visible la dispersin del espacio de direcciones fsicas en la memoria que tiene cada proceso. Tabla de Pginas (PT) es slo manipulada por el S.O. (queda en el espacio fsico del ncleo). Normalmente se usa un registro lmite PTLR cuyo contenido se compara con p. En el cambio de contexto se debe cambiar registro base (PTBR) y lmite (PTLR), de manera de apuntar a tabla de pginas del nuevo proceso. La manipulacin los registros especiales debe ser con instrucciones privilegiadas.
Departamento de Informtica 53
Ral Monge
Planificacin de Trabajos
Si el trabajo requiere N pginas y existen al menos N marcos libres, entonces admitirlo. Crear el proceso asignndole N marcos de pginas y definiendo la PT para el proceso. Agregar en la PCB referencia a la PT.
Ral Monge
Departamento de Informtica
54
18
Se elimina fragmentacin externa, evitndose la compactacin. Se introduce una fragmentacin interna mnima
Promedio [pgina/programa] Peor caso es P-1 bytes.
Se debe buscar compromiso de tamao pgina (overhead de PT vs. fragmentacin interna). Transferencia de disco es ms eficiente para pginas ms grandes.
Departamento de Informtica 55
Ral Monge
Acceso efectivo a memoria requiere de dos acceso a la memoria fsica (entrada a PT + direccin objetivo) Significa que el tiempo de acceso efectivo aumenta al doble (algo intolerable). Se requiere idear algn mecanismo de optimizacin.
Departamento de Informtica 56
Ral Monge
Memoria Asociativa
Tambin conocido como TLB (Translation Lookaside Buffer), implementada en hardware Se direcciona por contenido (clave de acceso). Cada entrada contiene una clave (bsqueda) y un dato (corresponde a la salida si se encuentra la clave, i.e. si hay xito) TLB se direcciona por el nmero de pgina (p), y si existe xito se obtiene directamente el nmero de marco (f), sin recurrir a la memoria principal.
Departamento de Informtica 57
Ral Monge
19
Caractersticas de la TLB
TLB es parte del procesador (MMU) El tiempo de acceso es menor que la memoria principal TLB mantiene automticamente como entradas las ltimas referencias El tamao tpico de un TLB es de 8 a 2048 registros Una tasa de xito tpica es del orden de 80% al 98% TLB debe ser borrada en un cambio de contexto
Ral Monge Departamento de Informtica 58
PT
Ral Monge
Departamento de Informtica
59
Tef
Tmp : tiempo de acceso a la memoria principal Tma : tiempo de acceso a la TLB h : probabilidad de xito (encontrar referencia en TLB)
Tef = h* (Tma + Tmp) + (1-h)* (2*Tmp)
Ral Monge Departamento de Informtica 60
entonces:
20
Ejemplo
Procesador Intel i486 tiene un TLB de 32 entradas Supongamos: Tmp: 100 [ns] Entonces: Tef = 0,9*120 + 0,1*200 = 128 [ns] (28% de aumento) Tma = 20 [ns] h = 90%
Ral Monge
Departamento de Informtica
61
Memoria Cache
Procesadores modernos son capaces de mantener copias de las pginas ms usadas en la memoria Cache Memoria cache es ms rpida que la principal Cuando se referencia a una pgina, se verifica primero si ella est en la cache.
Si lo est, se accede directamente, sin ir a MP Si no lo est, se accede normalmente a la memoria y se copia esta pgina a la memoria cache para futuros accesos.
21
Activacin de la Traduccin
Procesos normalmente corren con traduccin activada (slo ven su espacio lgico de direcciones) El ncleo normalmente ejecuta cdigo con la traduccin desactivada
Le permite manipular el espacio de direcciones de cualquier proceso
Ral Monge
Departamento de Informtica
64
Protecciones
En la tabla de pginas es posible agregar otros atributos (adems de f) a cada registro de pgina. Existen bsicamente los siguientes atributos de proteccin:
Modo de acceso Verificacin de presencia de la pgina en memoria
Una violacin de la proteccin genera una interrupcin (trampa), que es atrapada por el SO.
Ral Monge Departamento de Informtica 65
Modo de acceso es validado en el momento del direccionamiento Acceso indebido genera una interrupcin (trampa al S.O.)
Ral Monge
Departamento de Informtica
66
22
Bit de Validacin
Permite verificar presencia de pgina en Memoria Principal:
1 (validado): la pgina asociada si est en el espacio de direcciones lgica, y es por lo tanto legal. 0 (invalidado): la pgina asociada no est en el espacio de direcciones lgica del proceso, es ilegal.
Acceso ilegal a una pgina genera una trampa Permite dejar sin cargar algunas pginas de un programa
Ral Monge Departamento de Informtica 67
Comparticin de Pginas
Paginacin facilita comparticin de cdigo entre programas. Cdigo debe ser reentrante (slo se lee y ejecuta, pero no se altera) Cuando existen varios usuarios ejecutando el mismo programa, se requiere slo una copia del cdigo Se implementa mapeando diferentes direcciones lgicas en una misma direccin fsica
Departamento de Informtica 68
Ral Monge
4 PT2 6 2 Proceso P2
Ral Monge
Departamento de Informtica
69
23
Entonces:
Tabla puede tener hasta 232/212 = 220 entradas Requiere 4 MB de memoria para la PT
Ral Monge Departamento de Informtica 71
Paginacin Multinivel
Tabla de pginas se divide en pginas En el ejemplo anterior, una pgina puede tener hasta 220 entradas Una posible estructura de una direccin con paginacin de dos niveles es:
Direccin Lgica
Nmero de pgina Offset
p1
10 bits
Ral Monge
p2
10 bits
d
12 bits
72
Departamento de Informtica
24
Ejemplo de 2 Niveles
Direccin Lgica p1 p2 d p1 b2 b2 p2 f PT Externa b Pgina de PT d Memoria Principal
Ral Monge
Departamento de Informtica
73
Direcciones de 64 bits requieren ms de 2 niveles Existencias de ms niveles degrada el tiempo de acceso efectivo.
Requiere integrarlos con tcnicas caching y TLB
Ral Monge Departamento de Informtica 74
Ral Monge
Departamento de Informtica
75
25
bsqueda
pid p
Ral Monge
Departamento de Informtica
76
b) Segmentacin
26
Segmentos
Un programa se divide normalmente en segmentos lgicos:
Cdigo Datos Stack Heap Bibliotecas Tabla de smbolos etc.
Segmentacin permite tener una visin lgica del programa que se ha segmentado
Ral Monge Departamento de Informtica 79
Ral Monge
Departamento de Informtica
80
Caractersticas de la Segmentacin
Memoria se divide en segmentos, donde se cargan unidades lgicas de un programa Un programa es un conjunto de segmentos, donde cada uno pueden tener tamao diferente. Un direccin lgica es un par <s, d> , donde s es el segmento y d el desplazamiento. Segmentos no requieren localizarse en forma contigua. Se requiere una tabla de segmentos para para mantener contigidad del espacio lgica.
Ral Monge Departamento de Informtica 81
27
+
b
s+ d s d
b Registro STBR
+
lim s
d<lim
Ral Monge
NO
Trap
82
Departamento de Informtica
Ejemplo de Segmentacin
Memoria Fsica Memoria Lgica Tabla de Segmentos
Cdigo S0 Stack S2 Biblioteca S4 Datos Globales S1 Heap S3 1400 S0 2400 3200 S3 4300 4700 5700 6300 6700
Ral Monge Departamento de Informtica 83
s 0 1 2 3 4
S2 S4
S1
Observaciones
Segmentos son de tamao variable, lo que obliga a controlar su tamao usando atributo especial en ST. Para controlar tamao de ST, es necesario verificar que s no excede el nmero de segmentos, usando registro lmite STLR. En un cambio de contexto se debe actualizar el contenido de STBR y STLR. La modificacin de estos registros debe hacerse con instrucciones privilegiadas.
Ral Monge Departamento de Informtica 84
28
Aspectos de Desempeo
La adicin de s+d se hace en paralelo con la comparacin d<lim Mantencin de la ST se puede hacer mediante un conjunto de registros rpidos (Slo factible si tabla es pequea) Se puede mantener en una memoria asociativa entradas frecuentes a la ST, manteniendo 3-tupla <s, lim, s> y buscar por s y obtener par <lim, s> No es aplicable memoria cache.
Ral Monge Departamento de Informtica 85
Ral Monge
Departamento de Informtica
86
Ejemplo de Comparticin
Proceso 1
Editor S0
Datos1 S1
43.062
ST de Proceso 1
0 1 Lmite 25.286 4.425 Base 43.062 68.348
68.348
Editor
Datos1
72.713
Proceso 2
ST de Proceso 2
Editor S0
90.003
0 1
Datos2 S1
Datos2
98.553
Ral Monge
Departamento de Informtica
87
29
Asignacin de la Memoria
Se pueden usar los mismos algoritmos de particiones dinmicas (first-fit o best-fit) Se produce fragmentacin externa Se puede emplear compactacin para reducir efectos de fragmentacin externa.
Ral Monge
Departamento de Informtica
88
c) Segmentacin Paginada
Segmentacin Paginada
Esquema muy popular en computadores modernos. Trata de obtener las ventajas de la paginacin (evitar fragmentacin) y de la segmentacin (dividir en unidades lgicas) Programa se divide en segmentos y cada segmentos en pginas Una direccin lgica es una 2-tupla <s, d> , donde d se divide a su vez en la 2-tupla <p, d>. Fragmentacin promedia se aproxima a 1/2 pgina por cada segmento del programa.
Ral Monge
Departamento de Informtica
90
30
bs STBR
Direccin Fsica
Ral Monge
Departamento de Informtica
91
Ejemplo de Multics
Direccin lgica de 34 bits:
18 bits para el segmento (la ST se pagina) 16 bits desplazamiento (6 para la pgina y 10 para desplazamiento en la pgina)
Ral Monge
Departamento de Informtica
92
Comparticin y Protecciones
Al igual que segmentacin, se pueden agregar atributos en ST para discriminar el tipo de acceso permitido Un mismo segmento puede ser mapeado al espacio lgico de diferentes procesos.
Ral Monge
Departamento de Informtica
93
31
Desempeo
Esquema presentado requiere 3 accesos a la memoria para un acceso efectivo. Dado que existe paginacin es factible de introducir tcnica de memoria asociativa y de caching. Memoria asociativa (TLB) mantiene 3-tupla <s, p, f> y se busca por par <s, p> obtenindose f. Tcnicas anteriores permiten mantener tiempo de acceso efectivo dentro de lmites razonables.
Ral Monge Departamento de Informtica 94
Resumen
Esquemas de Administracin
Memoria Contigua:
Elementales: Mquina desnuda y monitor residente (sin multiprogramacin) Particiones estticas y dinmicas
Memoria no contigua:
Paginacin Segmentacin Segmentacin paginada
Ral Monge
Departamento de Informtica
96
32
Aspectos de Comparacin
Soporte de hardware Desempeo en la traduccin (direccin lgica a fsica) Fragmentacin Reubicacin (problema de compactacin) Swapping Comparticin de la memoria Proteccin de la memoria
Ral Monge Departamento de Informtica 97
33
Ral Monge
Departamento de Informtica
100
Ral Monge
Departamento de Informtica
102
34
Desventajas
Puede disminuir notablemente el desempeo del sistema. Se requiere de mecanismos ms complejos de administracin.
Ral Monge
Departamento de Informtica
103
Bit de validacin
11 5 15 1 0 1 0 1 0 0 0
0 5 C
11
A C
A D
B E
15
F Memoria Secundaria
Memoria Lgica
PT Memoria Fsica
Ral Monge
Departamento de Informtica
104
Bsqueda: Cundo buscar de la memoria secundaria una parte de un programa? (Anticipacin o por demanda) Ubicacin: Dnde localizarlo en la memoria principal? (en paginacin es trivial) Reemplazo: Qu sacar a memoria secundaria si no existe espacio disponible?
Ral Monge
Departamento de Informtica
105
35
Bsqueda: Una pgina se trae a memoria principal cuando se referencia y no est en MP. Ubicacin: Una pgina puede ser cargada en cualquier marco libre. Reemplazo: En caso de no existir espacio, la pgina que est en el marco a asignar debe ser respaldada (si es necesario) y sobrecargarla con la pgina trada.
Departamento de Informtica 106
Ral Monge
Swapping de Pginas
Sistemas modernos son generalmente de paginacin por demanda. Sistema de paginacin debe realizar swapping de pginas entre MP y MS. Swapping se realiza slo para pginas buscadas y pginas reemplazadas (lazy swapper). Se requiere de un mecanismo para reconocer qu pginas estn en MP y qu paginas en MS (e.g. uso de bit de validacin).
Departamento de Informtica 107
Ral Monge
Soporte de Hardware
Tabla de Pginas con bit de validacin Acceso a una pgina no presente en MP causa una falta de pgina (interrupcin) Memoria secundaria (con espacio de swapping para pginas) Resolver problemas con instrucciones complejas que quedan a medio a hacer (referencias a pginas no presentes en MP)
Ral Monge
Departamento de Informtica
108
36
Uso de un bit de modificacin para marcar pginas modificadas en la memoria principal permite evitar swapout de pginas reemplazadas. Partida de un proceso con ninguna pgina en MP causa inicialmente una serie de faltas de pginas.
Ral Monge
Departamento de Informtica
111
37
Entonces el tiempo de acceso efectivo es: Tef = (1-p)* Tmp + p* Tfp y se puede deducir que:
Ral Monge
Departamento de Informtica
Se tiene que: Tef = (1-p)* 100 + p* 20*106 [ns] 100 + 19.999.900*p [ns]
Ral Monge
Departamento de Informtica
113
38
Primer punto es un problema de usar mejor tecnologa de hardware Segundo punto requiere de polticas y mecanismos de control especiales
Ral Monge Departamento de Informtica 115
Comprar ms memoria Swappear un proceso a disco (reduciendo el grado de multiprogramacin) Reemplazar una pgina
Ral Monge
Departamento de Informtica
117
39
Motivacin
Realizando reemplazo se permite mantener ms procesos en memoria (aumenta grado de multiprogramacin) Reemplazo aumenta al doble el tiempo de acceso de falta pgina, pero se puede reducir usando bit de modificacin. Probabilidad de falta de pgina aumenta si la fraccin de programa en MP es menor.
Ral Monge
Departamento de Informtica
118
Resolver adecuadamente estos problemas puede mejorar significativamente el desempeo del sistema!!!
Ral Monge
Departamento de Informtica
119
Mtodo de Reemplazo
Si no existe marco libre se debe reemplazar Elegir una vctima usando un algoritmo de reemplazo Si la pgina saliente ha sido modificada debe ser respaldada (bit de modificacin) Cargar la nueva pgina en el marco liberado
Departamento de Informtica 120
Ral Monge
40
Algoritmos de Reemplazo
Diferentes polticas de reemplazo:
Aleatorio FIFO El menos usado etc.
Ral Monge
Departamento de Informtica
121
a) Reemplazo Aleatorio
Principio:
Reemplazar aleatoriamente cualquier pgina de MP, sin hacer ningn esfuerzo de prediccin
Este algoritmo es el ms simple dado que no requiere mantener informacin. Sin embargo por no explotar informacin sobre el comportamiento del proceso no logra buen desempeo.
Caractersticas:
Ral Monge
Departamento de Informtica
122
b) Reemplazo ptimo
Principio de Optimizacin [Denning70]:
Se llega a un desempeo ptimo reemplazando aquella pgina que va a ser nuevamente usada en el futuro ms lejano.
Caractersticas:
Logra el mejor desempeo posible Este algoritmo tiene conocimiento total sobre el desarrollo de la computacin. No es (prcticamente) realizable! Sin embargo es de inters, pues permite comparar que tan bien lo hacen otros algoritmos respecto al ptimo.
Ral Monge Departamento de Informtica 123
41
Ral Monge
Departamento de Informtica
124
c) Reemplazo FIFO
Principio:
Si una pgina ya tuvo su oportunidad, debe drsela a otra
Implementacin:
Se usa una marca de tiempo, y se reemplaza la ms vieja. Pginas ms usadas tienden a ser reemplazadas (e.g. pginas de cdigo principal y compartidas)
Problema:
Ral Monge
Departamento de Informtica
125
B B* A X
C C* B A
X
D D* C B
X
A A* D C
X
B B* A D
X
E E* B A
X
A E B A
B E B A
C C* E B
X
D D* C E
X
E D C E
Ral Monge
Departamento de Informtica
126
42
B B* A X
C C* B A X
D D* C B A
X
A D C B A
B D C B A
E E* D C B
X
A A* E D C
X
B B* A E D
X
C C* B A E
X
D D* C B A
X
E E* D C B
X
Ral Monge
Departamento de Informtica
127
Anomala de Belady
Parece natural que contra ms marcos se le asignen a un proceso, habr menos faltas de pgina. Sin embargo, Belady observ que en el algoritmo FIFO puede suceder lo contrario (e.g. en el ejemplo anterior)
Ral Monge
Departamento de Informtica
128
Reemplazo LRU
Principio:
Implementacin
Usar un stack ordenando pginas por antigedad de referencia o usar marcas de tiempo. Su implementacin puede requerir un alto overhead administrativo Implementacin eficiente requiere soporte de hardware
Ral Monge Departamento de Informtica 129
43
Ral Monge
Departamento de Informtica
130
Ral Monge
Departamento de Informtica
131
Algoritmos de apoximacin
NUR (Not Used Recently) LFU (Least Frequently Used) Segunda Oportunidad (Second Chance)
Ral Monge Departamento de Informtica 132
44
Algoritmo NUR
Principio
Pginas que no se han usado recientemente es poco probable que se usen proximamente
Implementacin:
Usar bit de referencia y bit de modificacin (bit sucio) Inicialmente ambos bits en 0 Bits se refrescan peridicamente
Departamento de Informtica 133
Ral Monge
Ral Monge
Departamento de Informtica
134
Algoritmo LFU
Principio:
Pginas que se referencian menos es poco probable que se referencia en un futuro cercano.
Implementacin bsica:
Se usa contador de referencia para cada pgina Se reemplaza pgina con menor nmero de referencias Si existe empate, se elige cualquiera de ellas (orden parcial)
Problema:
Se puede reemplazar pgina recin trada a memoria
Ral Monge Departamento de Informtica 135
45
Mantener para cada marco un registro de referencias. Usar para ello un registro de desplazamiento Peridicamente desplazar a la derecha y marcar referencias sobre el bit ms significativo. Se obtiene un decaimiento exponencial para el valor de referencia a una pgina Reemplazar la pgina con el menor valor en su registro.
Departamento de Informtica 136
Ral Monge
Usar bit de referencia para cada marco de pgina El conjunto de marcos se trata como un buffer circular Ante falta de pgina se reemplaza la primera pgina que no ha sido referenciada en el sentido de reloj (bit en 0) Si al verificar el bit de referencia (ste est en 1), entonces dar segunda oportunidad reseteando bit de referencia y continuar bsqueda en sentido de reloj. Si la pgina no vuelve a ser referenciada en una vuelta, ser reemplazada.
Ral Monge
Departamento de Informtica
137
Asignacin de Marcos
Problema:
Cmo distribuir los marcos libres de la memoria entre los procesos? Cantidad de marcos asignados determina desempeo del proceso.
Consideraciones:
El sistema operativo requiere ocupar un nmero necesario para mantener el ncleo. Multiprogramacin causa que procesos compitan por los marcos libres de la memoria
Ral Monge Departamento de Informtica 138
46
Algoritmos de Asignacin
Distribuir equitativamente los marcos libres Reconocer que los procesos requieren diferentes cantidades
Procesos ms grandes reciben ms:
ai = m si
s
i =1
Reemplazo global puede aduearse de marcos de otros procesos (e.g. Mayor prioridad), pero perjudica desempeo de algunos procesos. Reemplazo local mantiene constante nmero de marcos del proceso, pero limita a otros procesos de usar marcos con pginas poco usadas. En general, se prefiere reemplazo global (es ms fcil de implementar)
Ral Monge Departamento de Informtica 141
47
Concepto de Localidad
El concepto es central en la mayora de las estrategias de gestin de memoria virtual. Procesos tienden a referenciar la memoria en patrones no uniformes y altamente localizados:
Localidad temporal: Si se referencia una localizacin de memoria, es probable que prximamente sta misma se referencie nuevamente. Localidad espacial: Si se referencia una localizacin de memoria, es probable que a continuacin se referencie una localizacin contigua o vecina.
Departamento de Informtica 143
Ral Monge
Localidad Temporal
Ciclos repetitivos Uso frecuente de una misma subrutina Uso de stacks Uso de variables globales (y comunes)
Ral Monge
Departamento de Informtica
144
48
Localidad Espacial
Ral Monge
Departamento de Informtica
145
Ejemplo de Localidad
Ral Monge
Departamento de Informtica
146
f 1
Fraccin del Programa en MP
Un programa se ejecuta eficientemente en la medida que se mantengan en MP las pginas donde estn localizadas las referencias (pginas activas)
Ral Monge Departamento de Informtica 147
49
Hiperpaginacin (Trashing)
En general, un proceso tiene un conjunto de pginas de uso activo. Si un proceso no tiene suficientes marcos asignados, entonces reemplazar alguna de las pginas de uso activo. Entonces, la pgina reemplazada deber ser nuevamente trada en el corto plazo a la MP. Por lo tanto, el proceso pasar gran parte de su tiempo esperando transferencias de E/S (ver clculo del tiempo de acceso efectivo) Si la mayora de los procesos sufre este fenmeno, la CPU quedar gran parte de su tiempo ociosa, con una fuerte carga de transferencias de E/S.
Departamento de Informtica 148
Ral Monge
trashing
Grado de multiprogramacin
Ral Monge
Departamento de Informtica
149
Mtodos de Control:
Conjunto de Trabajo Frecuencia de Falta de Pgina
Ral Monge Departamento de Informtica 150
50
Un programa puede ser cargado en memoria slo si existe suficiente espacio para acomodar su conjunto de trabajo El conjunto de trabajo son aquellas pginas con las cuales ltimamente ha estado trabajando un programa (pginas activas, donde se localizan las referencias). Mientras no cambie la localidad, no se producen faltas de pginas.
Departamento de Informtica 152
Ral Monge
Definicin Formal de WS
Wi(t, )
t-
Tiempo de ejecucin de Pi
WSi(t, )
: Conjunto de trabajo del proceso Pi en el tiempo t con ventana (incluye todas aquellas pginas referenciadas entre t- y t)
Ral Monge
Departamento de Informtica
153
51
Observaciones al WS
Si | WS |> MP , entonces se produce trashing i Conjunto de trabajo (WS) indica cuntas y cules pginas mantener en MP para cada proceso. WS cambio dinmicamente durante la ejecucin de un proceso. debe ser ajustado para reducir tamao de WS sin provocar trashing. Denning sugiere que equivalga a 10.000 referencias. Se puede implementar una aproximacin de WS usando bit de referencia.
i
Ral Monge
Departamento de Informtica
154
Medir la frecuencia de falta de pgina de cada proceso. Asignar ms marcos si la frecuencia sobrepasa un lmite superior fh Quitar marcos si la frecuencia baja de un lmite inferior fl
Ral Monge
Departamento de Informtica
155
Incrementar # marcos
fh fl
Ral Monge
Departamento de Informtica
156
52
Observaciones
Si la frecuencia aumenta y no existen ms marcos libres, se debe suspender algn proceso Marcos libres se pueden distribuir sobre procesos con frecuencias altas
Ral Monge
Departamento de Informtica
157
Prepaginacin
Ral Monge
Departamento de Informtica
159
53
Tamao de la Pgina
Se elige una potencia de 2 para facilitar implementacin Compromiso entre fragmentacin interna y tamao de la PT. Tiempo de Acceso (latencia + transferencia) a una pgina en disco. Tamao de los bloques de disco. Pgina pequeo se ajusta mejor a la localidad del programa Pgina grande reduce la probabilidad de referenciar otra pgina.
Ral Monge
Departamento de Informtica
160
Bloqueo de E/S
Problema #1:
Cmo asegurar que las transferencias de E/S se puedan realizar sin interferencia del reemplazo? Solucin:
Copiar datos a travs del kernel (costoso) Bloquear algunas pginas en la MP
Problema #2:
Cmo prevenir que pginas recin cargadas sean reemplazadas?
Ral Monge
Departamento de Informtica
161
Copy-on-Write
Idea:
Pgina se comparte mientras no se modifique Copia se inicia cuando se escribe
Aplicaciones:
En un fork (inicialmente procesos comparten todo su espacio de memoria) En paso de mensajes (e.g. Mach): Pgina(s) que contiene(n) mensaje del emisor se mapea(n) al espacio del receptor.
Ral Monge
Departamento de Informtica
162
54