apunte05 s.o. contigua
TRANSCRIPT
1
UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍADepartamento de Informática
Capítulo V:Gestión de la Memoria
Visión del programa, métodos de memoria contigua y memoria no
contigua, memoria virtual
UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍADepartamento de Informática
5.1 Conceptos Básicos
Raúl Monge Departamento de Informática 3
Gestión de la Memoria
• Buena utilización de los recursos del sistema requiere de multiprogramación� Existen múltiples procesos� Deben compartir la memoria
• Se requiere de soporte especial de hardware:� Lograr un buen rendimiento� Mayor seguridad en el acceso a memoria
2
Raúl Monge Departamento de Informática 4
La Memoria• La memoria es un arreglo de palabras o
bytes, identificados por su dirección• Ejecución de una instrucción de máquina
requiere:� Búsqueda de la instrucción (siempre)� Búsqueda de operandos (no siempre)� Almacenamiento de resultados (no siempre)
• La unidad de memoria sólo ve un flujo de referencias a direcciones físicas de la memoria (no sabe cómo se generan y qué representan)
Raúl Monge Departamento de Informática 5
Ligado de Direcciones� Tiempo de Compilación. Es posible si se conoce a
priori la dirección absoluta donde residirá el programa.
� Tiempo de Enlace. Permite resolver direcciones entre diferentes módulos. Módulos deben poseer código reubicables.
� Tiempo de Carga. Se ajustan direcciones de acuerdo a la zona de memoria donde se cargará.
� Tiempo de Ejecución. Se se permite el movimiento de segmentos de memoria, se requiere de este tipo de ligado, que requiere de soporte de hardware especial.
Raúl Monge Departamento de Informática 6
Proceso de Generación de un Ejecutable
ProgramaFuente
ProgramaFuente
Compi-lador
oEnsam-blador
Compi-lador
oEnsam-blador
ObjetoObjeto
ObjetoObjeto
Editorde
Enlaces
Editorde
Enlaces
Módulode CargaMódulode Carga
Tiempo de Compilación Tiempo de Enlace
3
Raúl Monge Departamento de Informática 7
Proceso de Carga
ProgramaEjecutableProgramaEjecutable CargadorCargador
Bibliotecadel SistemaBiblioteca
del Sistema
Imagende memoria
Imagende memoria
Tiempo de Carga Tiempo de Ejecución
Bibliotecade CargaDinámica
Bibliotecade CargaDinámica
Raúl Monge Departamento de Informática 8
Direcciones Lógicas y Físicas• Dirección lógica (tb. dirección virtual) es el
tipo de referencias que usa un programa.• Dirección física es el tipo de referencias
que usa la unidad de memoria.
traduccióntraducciónDirección
lógicaDirección
lógicaDirección
físicaDirección
física
Raúl Monge Departamento de Informática 9
Esquema de la Memoria
BusBus
MMU
Contro-lador
E/SE/S
MemoriaPrincipal
CPU
4
Raúl Monge Departamento de Informática 10
MMU Simple
dirdir
basebase
++Dirección Lógica
Registro de Reubicación
base
dir
CPUMemoria
MMU
DirecciónFísica
Raúl Monge Departamento de Informática 11
Optimización del Uso de Memoria� Problema: Para que un programa pueda
ejecutarse debe ser cargado en forma completa en memoria.
� Objetivo: Mejorar el uso de la memoria (e.g. Espacio lógico sea menor que el físico)
� Métodos básicos:� Overlays (sobreposiciones)� Carga dinámica� Enlace dinámico
Raúl Monge Departamento de Informática 12
a) Overlays• Si no hay suficiente memoria, programa
puede ser estructurado en trozos independientes, tal que ellos no requieren estar simultáneamente en memoria.
• Evaluación de la técnica de overlay� permite ejecutar un programa con un espacio de
memoria física menor que el espacio de memoria lógica.
� No requiere soporte del Sistema Operativo� Es difícil organizar un programa, por lo que su uso
es limitado.
5
Raúl Monge Departamento de Informática 13
Ejemplo de Overlay
Manejo de sobreposiciones
Paso 1
Tabla de Símbolos
Código común
Espacio de Direccionesdel Programa
Paso 1 Paso 2Paso 2
Raúl Monge Departamento de Informática 14
b) Carga Dinámica• Un módulo (o rutina) no se carga hasta que sea
llamada por el programa (e.g. DLL en Windows)� Módulos se mantienen en disco en formato reubicable� Ligado a este tipo de módulo 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 desempeño al no cargar módulos no referenciados.
• No requiere soporte especial del SO, que puede apoyar con funciones especiales carga dinámica.
Raúl Monge Departamento de Informática 15
c) Enlace Dinámico
• Sistemas tradicionales sólo proveen enlace estático a funciones de biblioteca.
• Bibliotecas compartidas permiten que el enlace se postergue hasta después de la carga.
• Permite ahorrar espacio de disco y memoria.• Se requiere enlazar estáticamente sólo un stub por función
� Stub verifica si la función está cargada en memoria� Si no la está debe cargarla, pudiendo reemplazar en la tabla
dirección del stub por la de la función, habilitando accesos directos.
• Facilita mantención de bibliotecas• Requiere soporte del SO para compartir memoria entre
diferentes procesos.
6
UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍADepartamento de Informática
5.2 Gestión de la Memoriacon Asignación Contigua
Raúl Monge Departamento de Informática 17
a) Máquina Desnuda� Características:
� 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
� Limitación: No existen servicios� Aplicación: Se usa sólo en sistemas
dedicados
Raúl Monge Departamento de Informática 18
b) Monitor Residente• El espacio de memoria se divide en dos
partes:� Espacio del Sistema Operativo (núcleo)� Espacio de Usuarios
• Ubicación del vector de interrupcionesdetermina posición del Sistema Operativo
• Se requiere hardware especial si se quiere proteger al Sistema Operativo
� Reubicación de programas es bien soportada con traducción dinámicas de direcciones.
7
Raúl Monge Departamento de Informática 19
Esquema Simple de Monitor Residente
SistemaOperativo
Usuario1
Libre
Usuario2 ¡No se soportamultiprogramación!
UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍADepartamento de Informática
c) Multiprogramación con Particiones
Raúl Monge Departamento de Informática 21
Reubicación Dinámica con Protección
dirdir
basebase
++Dirección Lógica
Registro de Reubicación
base
dir
Memoria
MMU
DirecciónFísica
limlimRegistro Límite
< NO TRAP
8
Raúl Monge Departamento de Informática 22
Observaciones• Registro Base y Registro Límite son parte del
contexto de un proceso.• Estos registros sólo pueden ser modificados
en modo supervisor.• Este soporte es adecuado para manejar
múltiples particiones de la memoria para soportar multiprogramación
• El sistema operativo también puede cambiar su tamaño, sin afectar a los programas usuarios
Raúl Monge Departamento de Informática 23
c1) Particiones Fijas (o Estáticas)� El espacio usuario se divide en particiones de tamaño
fijo � En cada partición puede cargarse un proceso (i.e. el
grado de multiprogramación está a priori acotado al número de particiones).
� Cambiar el tamaño de las particiones requiere detener y arrancar nuevamente el sistema.
� La disponibilidad de particiones libres permite admitir un nuevo trabajo que calce en la partición (planificación de largo plazo).
� Se pueden aplicar técnicas de overlays, pero son transparentes al sistema operativo
Raúl Monge Departamento de Informática 24
Ejemplo de Particiones Estáticas
Monitor
2K
6K
12K
2K1K2K
4K3K5K
8K11K7K
IBM OS/360 con MFT(Procesamiento Batch)
9
Raúl Monge Departamento de Informática 25
Planificación de Trabajos con Particiones Estáticas• best--fit-only. Particiones de
diferentes tamaño con una cola para cada partición.� Trabajos se colocan en la cola de la
partición que mejor calzan• best-avalaible-fit. Particiones de
diferentes tamaño con cola única.� Trabajos se planifican considerando la
partición disponible donde mejor calzan
Raúl Monge Departamento de Informática 26
Fragmentación Interna y Externa• Si el proceso no ocupa toda la memoria
asignada en la partición, se produce fragmentación interna.
• Si existen particiones libres donde no calza ningún trabajo en espera, se produce fragmentación externa.
• Problemas:� Fragmentación interna y externa causan uso poco
eficiente de la memoria.� Difícil determinar a priori el tamaño de los
procesos
Raúl Monge Departamento de Informática 27
c2) Particiones Variables(o Dinámicas)
• Objetivo: minimizar fragmentación interna y externa
• SO mantiene tablas con particiones asignadas y libres.
• Particiones para los procesos se crean dinámicamente bajo demanda (cuando se carga el trabajo en una partición libre de tamaño adecuado)
• Usa el mismo hardware que particiones fijas, pero otro SO.
10
Raúl Monge Departamento de Informática 28
Ejemplo(MVT de IBM OS/360)
40
0
100
P1
P2
P3200
230
256
S.O.
40
0
100
P1
P3200
230
256
S.O.
40
0
100
P1
P4
P3200
230
256
170
S.O.
40
0
100
P4
P3200
230
256
170
S.O.
40
0
100
P5
P4
P3200
230
256
170
90
S.O.
LlegaP4Sale
P2
SaleP1
LlegaP5
Secuencia de Trabajos: P1 (60K), P2 (100K), P3 (30K), P4 (70K), P5 (50K)
Raúl Monge Departamento de Informática 29
Observaciones
� Nótese que después de un tiempo de trabajo se produce una dispersión de la memoria libre y ocupada.
� Bloques libres podrían fundirse en un solo bloque
Raúl Monge Departamento de Informática 30
Planificación de Trabajos con Particiones Dinámicas
• First-Fit: Cargar en la primera partición libre de tamaño suficiente (sencillo y rápido)
• Best-Fit: Cargar en la partición libre que mejor calza (produce fragmentos libres pequeños)
• Worst-Fit: Cargar en el fragmento libre mayor donde calza (produce grandes fragmentos libres)
11
Raúl Monge Departamento de Informática 31
Cuantificación de la Fragmentación Externa
• En general, en estado estacionario, si existen N particiones asignadas, entonces también existirán N particiones libres con tamaño 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%
Raúl Monge Departamento de Informática 32
Problemas con Particiones Dinámicas� La práctica demuestra que first-fit y best-fit
ofrecen los mejores rendimientos, sin embargo:� Se pueden producir fragmentos libres muy
pequeños� Solución: fundirla con la partición ocupada anterior
o usar bloques de tamaño fijo (produce fragm. interna).
� Se generan una serie de fragmentos de memoria libre entre cada par de particiones ocupadas consecutivas, cuyo tamaño no acepta otro trabajo.� Solución: Compactación
Raúl Monge Departamento de Informática 33
Resumen sobre Fragmentación
Tipo de Partición Fragmentación interna Fragmentación externaEstática SI SI
Dinámica NO SI (pero se puede compactar)
12
Raúl Monge Departamento de Informática 34
Compactación
� Consiste en unir todos los bloques libres de memoria en una sola partición.
� Se requiere soporte de reubicación dinámica de programas:� mover los bloques y� ajustar registros base y límite
Raúl Monge Departamento de Informática 35
¿Cuándo compactar?
• Criterios:♦ Periódicamente♦ Σ(espacio libre) > tamaño próximo trabajo
• Se debe considerar que la compactación tiene un costo:
♦ ¿Cuánto cuesta mover bloques de la memoria?
Raúl Monge Departamento de Informática 36
Ejemplo de Compactación
Compactar
300
0
500
P1
P2
P4
1000
1200
1500
S.O.
600
P3
1900
2100
300
0
500
P1
P2
P4800
1200
S.O.
600P3
2100
300
0
500
P1
P2
P4
1000
1200
S.O.
600
P3
2100
300
0
500
1500
600
P1
P2
P4
S.O.
P31900
2100
Mueve 600K Mueve 400K Mueve 200K
13
Raúl Monge Departamento de Informática 37
Comentarios sobre Compactación
• Optimizar la compactación requiere de algoritmos más inteligentes
• Se puede combinar swapping con particiones dinámicas para generar espacios libres.
• Sin embargo, la fragmentación externa en particiones dinámicas puede ser reducida, pero no eliminada.
• En la gestión del espacio de memoria de disco surgen problemas de fragmentación similares a los definidos en particiones dinámicas.
UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍADepartamento de Informática
d) Swapping
Raúl Monge Departamento de Informática 39
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 después volverlo a traer a la memoria (swap-in), y para continuar su ejecución.
• Para sacar un proceso se requiere de un dispositivo rápido de respaldo en memoria secundaria (típicamente un disco), donde se mantienen imágenes de memoria de los procesos.
14
Raúl Monge Departamento de Informática 40
Ejemplo de Swapping
SistemaOperativo
Espacio deUsuarios
ProcesoP2
2) Swap-in
ProcesoP1
1) Swap-out
ProcesoP1
ProcesoP2
Raúl Monge Departamento de Informática 41
Ejemplo de Cálculo• Supongamos disco con:
� 8 [ms] de tiempo de búsqueda� 8 [Mbps] de tasa de transferencia
• Procesos de 1 [MB]• Swap-in o swap-out demora 1008 [ms] c/u• Significa que si se tiene un solo proceso en
memoria, existiría 2,016 [s] sin asignar la CPU
• Por lo tanto, el cuanto de tiempo debiera ser mucho mayor que 2 [s]
Raúl Monge Departamento de Informática 42
Aplicaciones de Swapping• Primeros sistemas interactivos (Q-32) usaban
swapping con un solo proceso en memoria• Llegada de un proceso más prioritario
requiere crear espacio de memoria, sacando alguno de más baja prioridad de memoria si no hay espacio.
• Se puede usar para reducir carga sobre el sistema (ver planificación de mediano plazo)
15
Raúl Monge Departamento de Informática 43
Problemas con Swapping• Mecanismo de traducción de direcciones
lógica determina si es posible traer el proceso a otra zona de memoria (requiere reubicación dinámica)
• Usualmente no se pueden sacar procesos que tienen solicitudes pendientes:�Swap-out sólo 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 dinámicas)
UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍADepartamento de Informática
5.3 Gestión de la Memoriacon Asignación No Contigua
Raúl Monge Departamento de Informática 45
Motivación� Los esquemas anteriores sufren de
fragmentación, principalmente porque requieren de asignación contigua, haciendo un mal uso de la memoria
� Una alternativa sería:� Dividir el espacio de memoria de un programa en
varias partes más pequeñas� Permitir que estas partes se carguen en cualquier
parte libre de la memoria (no contigüidad física)� Usar un mecanismo de traducción que mantenga
la contigüidad lógica del programa
16
UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍADepartamento de Informática
a) Paginación
Raúl Monge Departamento de Informática 47
Concepto de Paginación• Programas se dividen en unidades pequeñas de
memoria de tamaño fijo, denominadas páginas(tamaño es normalmente una potencia de 2).
• La memoria física se divide en unidades del mismo tamaño, denominadas marcos de página (page frames).
• Cualquier página puede ser cargada en cualquier marco de página libre (no necesariamente contiguo).
• A los programas se les puede asignar memoria bajo demanda
Raúl Monge Departamento de Informática 48
Asociación entre Página y Marco
44
33
22
11
00
Programa
0
1
23
4012345678
Memoria Principal
01234
42670
Página Marco
17
Raúl Monge Departamento de Informática 49
Mecanismo de Traducción• Se requiere de una tabla de páginas (PT)
para cada proceso, donde se pueda asociar a cada página con el marco correspondiente.
• Se requiere hardware especial (MMU) para establecer eficientemente en tiempo de ejecución una asociación entre página y marco.
• Sistema Operativo debe también mantener información sobre marcos libres (Tabla de Marcos)
Raúl Monge Departamento de Informática 50
Estructura de Direcciones
p d
Dirección Lógica (DL)
f d
Dirección Física
TraducciónTraducción
p : # de páginad : offsetf : # de marco
Si P es tamaño de páginaentonces:
p = DL div Pd = DL mod P
Raúl Monge Departamento de Informática 51
Ejemplo de Direcciones
p d
Dirección Lógica
Supongamos:tamaño de dirección lógica: m bitstamaño de página: P = 2n bits
n bitsm-n bits Tamaño típico de P:512 B a 8 KB
18
Raúl Monge Departamento de Informática 52
Implementación Básica delMecanismo de Traducción
b +
Dirección FísicaDirección Lógica
dRegistro PTBRf*P
Memoria Principal
p d f d
PT
f
pb
Raúl Monge Departamento de Informática 53
Observaciones
• El usuario ve un espacio contiguo de direcciones lógicas.• Sólo para el S.O. es visible la dispersión del espacio de
direcciones físicas en la memoria que tiene cada proceso.• Tabla de Páginas (PT) es sólo manipulada por el S.O.
(queda en el espacio físico del núcleo).• Normalmente se usa un registro límite PTLR cuyo
contenido se compara con p.• En el cambio de contexto se debe cambiar registro base
(PTBR) y límite (PTLR), de manera de apuntar a tabla de páginas del nuevo proceso.
• La manipulación los registros especiales debe ser con instrucciones privilegiadas.
Raúl Monge Departamento de Informática 54
Planificación de Trabajos
• Si el trabajo requiere N páginas y existen al menos N marcos libres, entonces admitirlo.
• Crear el proceso asignándole N marcos de páginas y definiendo la PT para el proceso.
• Agregar en la PCB referencia a la PT.
19
Raúl Monge Departamento de Informática 55
Fragmentación y Tamaño de Página• Se elimina fragmentación externa, evitándose
la compactación.• Se introduce una fragmentación interna
mínima�Promedio ≈ ½ [página/programa]�Peor caso es P-1 bytes.
• Se debe buscar compromiso de tamaño página (overhead de PT vs. fragmentación interna).
• Transferencia de disco es más eficiente para páginas más grandes.
Raúl Monge Departamento de Informática 56
Tiempo de Acceso Efectivo
• Acceso efectivo a memoria requiere de dos acceso a la memoria física(entrada a PT + dirección objetivo)
• Significa que el tiempo de acceso efectivo aumenta al doble (algo intolerable).
• Se requiere idear algún mecanismo de optimización.
Raúl Monge Departamento de Informática 57
Memoria Asociativa• También conocido como TLB (Translation Look-
aside Buffer), implementada en hardware• Se direcciona por contenido (clave de acceso).• Cada entrada contiene una clave (búsqueda) y
un dato (corresponde a la salida si se encuentra la clave, i.e. si hay éxito)
• TLB se direcciona por el número de página (p), y si existe éxito se obtiene directamente el número de marco (f), sin recurrir a la memoria principal.
20
Raúl Monge Departamento de Informática 58
Características de la TLB
• TLB es parte del procesador (MMU)• El tiempo de acceso es menor que la memoria
principal• TLB mantiene automáticamente como entradas las
últimas referencias• El tamaño típico de un TLB es de 8 a 2048 registros• Una tasa de éxito típica es del orden de 80% al
98%• TLB debe ser borrada en un cambio de contexto
Raúl Monge Departamento de Informática 59
Implementación con TLB
Dirección FísicaDirección Lógica
df*P
Memoria Principal
p d f d
b
Registro PTBR+
PT
f
pb
TLB
p f
Sin Éxito
Éxito
Raúl Monge Departamento de Informática 60
Tiempo de Acceso Efectivo con TLB
Supongamos:
Tef : Tiempo de acceso efectivo a memoriaTmp : tiempo de acceso a la memoria principalTma : tiempo de acceso a la TLBh : probabilidad de éxito
(encontrar referencia en TLB)entonces:
Tef = h* (Tma + Tmp) + (1-h)* (2*Tmp)
21
Raúl Monge Departamento de Informática 61
Ejemplo
Procesador Intel i486 tiene un TLB de 32 entradas
Supongamos:
Tmp: 100 [ns] Tma = 20 [ns] h = 90%
Entonces:
Tef = 0,9*120 + 0,1*200 = 128 [ns] (28% de aumento)
Raúl Monge Departamento de Informática 62
Memoria Cache
� Procesadores modernos son capaces de mantener copias de las páginas más usadas en la memoria Cache
� Memoria cache es más rápida que la principal� Cuando se referencia a una página, 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 página a la memoria cache para futuros accesos.
� Si accesos tienden a concentrarse en ciertas zonas de la memoria, se mejora el desempeño
Raúl Monge Departamento de Informática 63
Cálculo del Tiempo de Acceso Efectivo con Memoria Cache� Se debe considerar tasa de éxito de encontrar
la página en memoria cache.� Se debe considerar que parte de tabla de
páginas (no la TLB) también puede estar en la memoria cache.
� Si existe TLB, se debe considerar primero tasa de éxito en la TLB y luego tasa de éxito en la memoria cache, tanto en el acceso a la tabla de página como a la página objetivo.
22
Raúl Monge Departamento de Informática 64
Activación de la Traducción• El SO puede activar o desactivar el modo de
traducción dinámica de direcciones.�Modo desactivado usa directamente direcciones
físicas• Procesos normalmente corren con traducción
activada (sólo ven su espacio lógico de direcciones)
• El núcleo normalmente ejecuta código con la traducción desactivada�Le permite manipular el espacio de direcciones de
cualquier proceso
Raúl Monge Departamento de Informática 65
Protecciones� En la tabla de páginas es posible agregar
otros atributos (además de f) a cada registro de página.
� Existen básicamente los siguientes atributos de protección:� Modo de acceso� Verificación de presencia de la página en memoria
� Una violación de la protección genera una interrupción (trampa), que es atrapada por el SO.
Raúl Monge Departamento de Informática 66
Protección de Modo de Acceso� Típicamente existen tres modos de accesos:
� Lectura� Escritura� Ejecución
� Modo de acceso es validado en el momento del direccionamiento
� Acceso indebido genera una interrupción (trampa al S.O.)
23
Raúl Monge Departamento de Informática 67
Bit de Validación� Permite verificar presencia de página en
Memoria Principal:�1 (validado): la página asociada si está en el
espacio de direcciones lógica, y es por lo tanto legal.
�0 (invalidado): la página asociada no está en el espacio de direcciones lógica del proceso, es ilegal.
� Acceso ilegal a una página genera una trampa
� Permite dejar sin cargar algunas páginas de un programa
Raúl Monge Departamento de Informática 68
Compartición de Páginas
• Paginación facilita compartición de código entre programas.
• Código debe ser reentrante (sólo se lee y ejecuta, pero no se altera)
• Cuando existen varios usuarios ejecutando el mismo programa, se requiere sólo una copia del código
• Se implementa mapeando diferentes direcciones lógicas en una misma dirección física
Raúl Monge Departamento de Informática 69
Ejemplo de Compartición de Páginas
Ed1Ed2Ed3Data3
3467
Proceso P3
PT3
Ed1Ed2Ed3Data2
3462
Proceso P2
PT2
Ed1Ed2Ed3Data1
3461
Proceso P1
PT1Data1Data2Ed1Ed2
Ed3Data 3
0
1234
5
67
8
24
Raúl Monge Departamento de Informática 70
Problema con Tamaño de Tabla de Páginas
� Computadores modernos soportan espacios lógicos de direcciones de 232 a 264 bits
� Tales direcciones requieren tablas de páginas demasiado grandes
� Se hace inmanejable mantener tales tablas en memoria contigua.
Raúl Monge Departamento de Informática 71
Ejemplo de Tamaño de Tabla de Página
� Supongamos:� Dirección de 32 bits� Páginas de 4 KB� 32 bits para una entrada en la tabla
� Entonces:� Tabla puede tener hasta 232/212 = 220
entradas� Requiere 4 MB de memoria para la PT
Raúl Monge Departamento de Informática 72
Paginación Multinivel
� Tabla de páginas se divide en páginas� En el ejemplo anterior, una página
puede tener hasta 220 entradas� Una posible estructura de una dirección
con paginación de dos niveles es:
p1 d
Dirección Lógica
p2
10 bits 10 bits 12 bits
Número de página Offset
25
Raúl Monge Departamento de Informática 73
Ejemplo de 2 Niveles
Páginade PT
f
p2
PTExterna
b2
p1
b
d
Memoria Principal
Dirección Lógicap1 p2 d
b2
Raúl Monge Departamento de Informática 74
Comentarios sobre Paginación Multinivel� Dos niveles son adecuado hasta 32 bits� Muchas arquitecturas de 32 bits usan más
niveles� SPARC de 32 bits: 4 niveles� Motorola 68030 de 32 bits: 3 niveles.
� Direcciones de 64 bits requieren más de 2 niveles
� Existencias de más niveles degrada el tiempo de acceso efectivo.� Requiere integrarlos con técnicas caching y TLB
Raúl Monge Departamento de Informática 75
Tabla de Páginas Invertida� Una crítica al método anterior es que una PT puede
consistir de millones de entrada, existiendo una por proceso.
� Tal situación consume mucha memoria.� Una solución es una tabla de páginas invertida
con una entrada por cada página real (marco), que es común a todos los procesos.� Dirección lógica es 3-tupla: <pid, p, d>� Cada entrada en la tabla tiene el par: <pid, p>� Posición relativa en la tabla permite determinar f
26
Raúl Monge Departamento de Informática 76
Esquema de Traducción Dinámica con Tabla Invertida
Dirección Lógicapid p d
pid p
búsqueda
Dirección Física
df*P
Memoria Principal
f d
Raúl Monge Departamento de Informática 77
Comentarios sobre Tablas Invertidas de Páginas
� Una Entrada no encontrada en la tabla significa dirección ilegal.
� Usado en máquinas IBM (IBM System/38, IBM RISC 6000, IBM RT)
� Reduce espacio de memoria ocupado por tablas.� Sin embargo, se aumenta tiempo de búsqueda
� Se usan tabla de hash y memoria asociativa� No es un esquema popular (es difícil compartir
memoria)
UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍADepartamento de Informática
b) Segmentación
27
Raúl Monge Departamento de Informática 79
Segmentos
� Un programa se divide normalmente en segmentos lógicos:� Código� Datos� Stack� Heap� Bibliotecas� Tabla de símbolos� etc.
� Segmentación permite tener una visión lógica del programa que se ha segmentado
Raúl Monge Departamento de Informática 80
Ejemplo de Visión Lógica del Usuario
Código
S0
Stack
S2
DatosGlobales
S1
Heap
S3
Biblioteca
S4
Raúl Monge Departamento de Informática 81
Características de la Segmentación
� Memoria se divide en segmentos, donde se cargan unidades lógicas de un programa
� Un programa es un conjunto de segmentos, donde cada uno pueden tener tamaño diferente.
� Un dirección lógica 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 contigüidad del espacio lógica.
28
Raúl Monge Departamento de Informática 82
Implementación Básica delMecanismo de Traducción
+
Dirección FísicaDirección Lógica
d
Registro STBR
s´
Memoria Principal
s d s´+ d
ST
s´
sb
+
lim
b
d<lim NO Trap
Raúl Monge Departamento de Informática 83
Ejemplo de Segmentación
Código
S0
Stack
S2
DatosGlobales
S1
Heap
S3Biblio-
tecaS4
Memoria Lógica S01400
2400
S3
3200
4300 S24700
S45700
6700S1
6300
Memoria Física
1000400400
11001000
14006300430032004700
01234
s límite base
Tabla de Segmentos
Raúl Monge Departamento de Informática 84
Observaciones� Segmentos son de tamaño variable, lo que
obliga a controlar su tamaño usando atributo especial en ST.
� Para controlar tamaño de ST, es necesario verificar que s no excede el número de segmentos, usando registro límite STLR.
� En un cambio de contexto se debe actualizar el contenido de STBR y STLR.
� La modificación de estos registros debe hacerse con instrucciones privilegiadas.
29
Raúl Monge Departamento de Informática 85
Aspectos de Desempeño� La adición de s´+d se hace en paralelo con la
comparación d<lim� Mantención de la ST se puede hacer
mediante un conjunto de registros rápidos(Sólo factible si tabla es pequeña)
� 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.
Raúl Monge Departamento de Informática 86
Protección y Compartición de Memoria
� Segmentación facilita el control de la compartición y protección de la memoria.
� Para protecciones se mantiene información adicional en ST sobre métodos de acceso permitidos
Raúl Monge Departamento de Informática 87
Ejemplo de Compartición
43.062
Proceso 1
S0
Editor
S1
Datos1ST de Proceso 1
Proceso 2
S0
Editor
S1
Datos2
ST de Proceso 2
Editor
Datos1
Datos2
68.348
90.003
72.713
98.553
Límite Base0 25.286 43.0621 4.425 68.348
Límite Base0 25.286 43.0621 8.550 90.003
30
Raúl Monge Departamento de Informática 88
Asignación de la Memoria
• Se pueden usar los mismos algoritmos de particiones dinámicas (first-fit o best-fit)
• Se produce fragmentación externa• Se puede emplear compactación para
reducir efectos de fragmentación externa.
UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍADepartamento de Informática
c) Segmentación Paginada
Raúl Monge Departamento de Informática 90
Segmentación Paginada� Esquema muy popular en computadores modernos.� Trata de obtener las ventajas de la paginación (evitar
fragmentación) y de la segmentación (dividir en unidades lógicas)
� Programa se divide en segmentos y cada segmentos en páginas
� Una dirección lógica es una 2-tupla <s, d> , donde dse divide a su vez en la 2-tupla <p, d´>.
� Fragmentación promedia se aproxima a 1/2 página por cada segmento del programa.
31
Raúl Monge Departamento de Informática 91
Esquema de Traducción Dinámica
+
ST
lim bp
d < lim
trap
NO
bsSTBR
+Dirección
Física
MemoriaPrincipal
f d´
PT de s
f
p d´
DirecciónLógicas d
d
bs
bp
Raúl Monge Departamento de Informática 92
Ejemplo de Multics
� Dirección lógica de 34 bits:�18 bits para el segmento (la ST se pagina)�16 bits desplazamiento (6 para la página y 10
para desplazamiento en la página)
Raúl Monge Departamento de Informática 93
Compartición y Protecciones
� Al igual que segmentación, se pueden agregar atributos en ST para discriminar el tipo de acceso permitido
� Un mismo segmento puede ser mapeado al espacio lógico de diferentes procesos.
32
Raúl Monge Departamento de Informática 94
Desempeño� Esquema presentado requiere 3 accesos a la
memoria para un acceso efectivo.� Dado que existe paginación es factible de
introducir técnica de memoria asociativa y de caching.
� Memoria asociativa (TLB) mantiene 3-tupla <s, p, f> y se busca por par <s, p>obteniéndose f.
� Técnicas anteriores permiten mantener tiempo de acceso efectivo dentro de límites razonables.
UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍADepartamento de Informática
Resumen
Raúl Monge Departamento de Informática 96
Esquemas de Administración
• Memoria Contigua:� Elementales: Máquina desnuda y monitor
residente (sin multiprogramación)� Particiones estáticas y dinámicas
• Memoria no contigua:� Paginación� Segmentación� Segmentación paginada
33
Raúl Monge Departamento de Informática 97
Aspectos de Comparación� Soporte de hardware� Desempeño en la traducción (dirección lógica
a física)� Fragmentación� Reubicación (problema de compactación)� Swapping� Compartición de la memoria� Protección de la memoria
UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍADepartamento de Informática
5.4 Gestión de Memoria Virtual
UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍADepartamento de Informática
5.4.1 Introducción a Memoria Virtual
34
Raúl Monge Departamento de Informática 100
Objetivo de la Gestión de Memoria
� El objetivo principal de la administración moderna de memoria es mantener simultáneamente en la memoria el mayor número posible de procesos.
� Para ello es deseable poder distribuir el espacio físico disponible entre un mayor número de procesos.
Raúl Monge Departamento de Informática 101
¿Porqué no cargar completamente un programa?� La lógica del programa determina que ciertas
partes no se ejecutan.� Existe código que maneja situaciones de
excepción.� Arreglos, listas y tablas asignan normalmente
mayor memoria que la realmente requerida.� No todas las partes de un programa
requieren estar simultáneamente en memoria (referencias se concentran en ciertas zonas de memoria).
Raúl Monge Departamento de Informática 102
Definición de Memoria Virtual
� técnica que permite la ejecución de un proceso que no requiere estar completamente en memoria principal, siendo esta característica trasparente para el programador.
35
Raúl Monge Departamento de Informática 103
Características de la Memoria Virtual� Ventajas
� Aumenta grado de multiprogramación al requerir menos memoria real por proceso
� Programas pueden ser mayores que el espacio de memoria física.
� Se requiere menor tráfico de E/S para "swappear" un programa
� Libera al programador de preocuparse de limitaciones de memoria (como es el caso con overlays y carga dinámica)
� Desventajas� Puede disminuir notablemente el desempeño del sistema.� Se requiere de mecanismos más complejos de
administración.
Raúl Monge Departamento de Informática 104
Ejemplo de Paginación Bajo Demanda
MemoriaFísica
ABCDEFGH
0123
567
4
MemoriaLógica
A B
C D EF
MemoriaSecundaria
C
A
E
5
11
15
0marco
Bit devalidación
11 1001
5 1203
15 14050607
PT
Raúl Monge Departamento de Informática 105
Estrategias para la Gestión de la Memoria Virtual• Búsqueda: ¿Cuándo buscar de la memoria
secundaria una parte de un programa? (Anticipación o por demanda)
• Ubicación: ¿Dónde localizarlo en la memoria principal? (en paginación es trivial)
• Reemplazo: ¿Qué sacar a memoria secundaria si no existe espacio disponible?
36
Raúl Monge Departamento de Informática 106
Paginación por Demanda• Búsqueda: Una página se trae a memoria
principal cuando se referencia y no está en MP.
• Ubicación: Una página puede ser cargada en cualquier marco libre.
• Reemplazo: En caso de no existir espacio, la página que está en el marco a asignar debe ser respaldada (si es necesario) y sobrecargarla con la página traída.
Raúl Monge Departamento de Informática 107
Swapping de Páginas� Sistemas modernos son generalmente de
paginación por demanda.• Sistema de paginación debe realizar swapping
de páginas entre MP y MS. • Swapping se realiza sólo para páginas
buscadas y páginas reemplazadas (lazy swapper).
• Se requiere de un mecanismo para reconocer qué páginas están en MP y qué paginas en MS (e.g. uso de bit de validación).
Raúl Monge Departamento de Informática 108
Soporte de Hardware• Tabla de Páginas con bit de validación• Acceso a una página no presente en MP
causa una falta de página (interrupción)• Memoria secundaria (con espacio de
swapping para páginas)• Resolver problemas con instrucciones
complejas que quedan a medio a hacer (referencias a páginas no presentes en MP)
37
UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍADepartamento de Informática
5.4.2 Falta de Páginas
Raúl Monge Departamento de Informática 110
Procesamiento de Falta de Páginaif (página p no está en MS)
terminar el proceso;else { /* traer página a MP */
if (no existe marco libre) {/* realizar un reemplazo */elegir una página p’ a reemplazar en marco f;planificar escritura de p’ hacia MS;wait(transferencia);
} else { /no se requiere reemplazo */asignar marco f de lista de marcos libres;
}/* transferir página a marco asignado f */planificar lectura de p desde MS y transferir a f;wait (transferencia);actualizar tabla de página con marco fponer bit de validación = 1;recomenzar la última instrucción;
}
Raúl Monge Departamento de Informática 111
Sobre las Faltas de Página
• Uso de un bit de modificación para marcar páginas modificadas en la memoria principal permite evitar swap-out de páginas reemplazadas.
• Partida de un proceso con ninguna página en MP causa inicialmente una serie de faltas de páginas.
38
Raúl Monge Departamento de Informática 112
Tiempo de Acceso EfectivoSea: p probabilidad de falta de página
Tmp tiempo de acceso de memoria principalTfp tiempo de acceso con falta de páginaTef tiempo de acceso efectivo de memoria principal
Entonces el tiempo de acceso efectivo es:
Tef = (1-p)* Tmp + p* Tfp
)1(*1 −+=mp
ef
TTp
TT fp
mp
y se puede deducir que:
Raúl Monge Departamento de Informática 113
Ejemplo de Desempeño (1/2)
Si : Tmp = 100 [ns]Tfp = 20 [ms]
Se tiene que:
Tef = (1-p)* 100 + p* 20*106 [ns]100 + 19.999.900*p [ns]
Raúl Monge Departamento de Informática 114
Ejemplo de Desempeño (2/2)Si p = 10-3, entonces:
Tef ≈ 20 [ms]
Ahora si se quiere acotar a un aumento de 10% para el Tef, se tiene que:
0,1 > p*(Tef/Tmp –1) ó
p < 0,1/(20*106/100 –1) ≈ 5*10-7
¡¡Significa que no ocurre más de una falta de página en 2.000.000 accesos a MP!!
39
Raúl Monge Departamento de Informática 115
Análisis del Desempeño
� Se puede reducir el desempeño:�Usando discos rápidos de manera de
mantener baja la relación Tfp/Tmp
�Reducir la probabilidad p de falta de página
� Primer punto es un problema de usar mejor tecnología de hardware
� Segundo punto requiere de políticas y mecanismos de control especiales
UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍADepartamento de Informática
5.4.3 Reemplazo de Páginas
Raúl Monge Departamento de Informática 117
¿Cómo crear espacio libre?
• Comprar más memoria• Swappear un proceso a disco
(reduciendo el grado de multiprogramación)
• Reemplazar una página
40
Raúl Monge Departamento de Informática 118
Motivación� Realizando reemplazo se permite mantener
más procesos en memoria (aumenta grado de multiprogramación)
� Reemplazo aumenta al doble el tiempo de acceso de falta página, pero se puede reducir usando bit de modificación.
� Probabilidad de falta de página aumenta si la fracción de programa en MP es menor.
Raúl Monge Departamento de Informática 119
Problemas básicos de Paginación bajo Demanda
• Algoritmo de Asignación de Páginas� ¿Cuántos marcos asignar a cada proceso?
• Algoritmo de Reemplazo de Páginas� ¿Qué página reemplazar?
¡¡¡Resolver adecuadamente estos problemas puede mejorar significativamente el desempeño del sistema!!!
Raúl Monge Departamento de Informática 120
Método de Reemplazo
• Si no existe marco libre se debe reemplazar
• Elegir una víctima usando un algoritmo de reemplazo
• Si la página saliente ha sido modificada debe ser respaldada (bit de modificación)
• Cargar la nueva página en el marco liberado
41
Raúl Monge Departamento de Informática 121
Algoritmos de Reemplazo
� Diferentes políticas de reemplazo:� Aleatorio� FIFO� El menos usado� etc.
� Algoritmo elegido tiene fuerte impacto en el desempeño.
Raúl Monge Departamento de Informática 122
a) Reemplazo Aleatorio• Principio:
• Reemplazar aleatoriamente cualquier página de MP, sin hacer ningún esfuerzo de predicción
• Características:• Este algoritmo es el más simple dado que no
requiere mantener información.• Sin embargo por no explotar información sobre el
comportamiento del proceso no logra buen desempeño.
Raúl Monge Departamento de Informática 123
b) Reemplazo Óptimo� Principio de Optimización [Denning70]:
� Se llega a un desempeño óptimo reemplazando aquella página que va a ser nuevamente usada en el futuro más lejano.
� Características:� Logra el mejor desempeño posible� Este algoritmo tiene conocimiento total sobre el
desarrollo de la computación.� ¡No es (prácticamente) realizable!� Sin embargo es de interés, pues permite comparar
que tan bien lo hacen otros algoritmos respecto al óptimo.
42
Raúl Monge Departamento de Informática 124
Ejemplo de Reemplazo Óptimo
A B C D A B E A B C D EA* A A A A A A A A C* C C- B* B B B B B B B B D* D- - C* D* D D E* E E E E EX X X X X X X
¡¡¡Produce 7 faltas de página!!!
Raúl Monge Departamento de Informática 125
c) Reemplazo FIFO
• Principio:� Si una página ya tuvo su oportunidad, debe
dársela a otra
• Implementación:• Se usa una marca de tiempo, y se reemplaza la
más vieja.
• Problema:• Páginas más usadas tienden a ser reemplazadas
(e.g. páginas de código principal y compartidas)
Raúl Monge Departamento de Informática 126
Ejemplo: Reemplazo FIFO (1/2)
A B C D A B E A B C D EA* B* C* D* A* B* E* E E C* D* D- A B C D A B B B E C C- - A B C D A A A B E EX X X X X X X X X
¡¡¡Produce 9 faltas de página!!!
43
Raúl Monge Departamento de Informática 127
Ejemplo: Reemplazo FIFO (2/2)
A B C D A B E A B C D EA* B* C* D* D D E* A* B* C* D* E*- A B C C C D E A B C D- - A B B B C D E A B C- - - A A A B C D E A BX X X X X X X X X X
Se aumenta a 4 marcos de páginas
¡¡¡Produce 10 faltas de página!!!
Raúl Monge Departamento de Informática 128
Anomalía de Belady
• Parece natural que contra más marcos se le asignen a un proceso, habrá menos faltas de página.
• Sin embargo, Belady observó que en el algoritmo FIFO puede suceder lo contrario (e.g. en el ejemplo anterior)
Raúl Monge Departamento de Informática 129
Reemplazo LRU(Least Recently Used)� Principio:
� Aproximación al reemplazo óptimo basado en la heurística de que el pasado reciente es buen indicador del futuro inmediato
� Implementación� Usar un stack ordenando páginas por antigüedad
de referencia o usar marcas de tiempo.� Su implementación puede requerir un alto
overhead administrativo� Implementación eficiente requiere soporte de
hardware
44
Raúl Monge Departamento de Informática 130
Ejemplo de LRU (1/2)
A B C D A B E A B C D EA* B* C* D* A* B* E* A B C* D* E*- A B C D A B E A B C D- - A B C D A B E A B CX X X X X X X X X X
¡¡¡Produce 10 faltas de página!!!
Usando 3 marcos:
Raúl Monge Departamento de Informática 131
Ejemplo de LRU (2/2)
A B C D A B E A B C D EA* B* C* D* A B E* A B C* D* E*
A B C D A B E A B C D- - A B C D A B E A B C- - - A B C D D D E A BX X X X X X X X
¡¡¡Produce 8 faltas de página!!!
Usando 4 marcos:
Raúl Monge Departamento de Informática 132
Algoritmos de Aproximación a LRU
� Objetivo:� usar estrategias de reemplazo que hagan
decisiones razonables, y que� tengan un bajo overhead en su realización
� Algoritmos de apoximación� NUR (Not Used Recently)� LFU (Least Frequently Used)� Segunda Oportunidad (Second Chance)
45
Raúl Monge Departamento de Informática 133
Algoritmo NUR
� Principio� Páginas que no se han usado
recientemente es poco probable que se usen proximamente
� Implementación:• Usar bit de referencia y bit de modificación
(bit sucio)• Inicialmente ambos bits en 0• Bits se refrescan periódicamente
Raúl Monge Departamento de Informática 134
Prioridad de Reemplazo en NUR
PRIORIODAD Ref Mod OBSERVACIÓN1 0 0 NO referenciado recientemente y NO modificado2 0 13 1 0 Referenciado recientemente, pero NO modificado4 1 1
Raúl Monge Departamento de Informática 135
Algoritmo LFU• Principio:
� Páginas que se referencian menos es poco probable que se referencia en un futuro cercano.
• Implementación básica:� Se usa contador de referencia para cada página� Se reemplaza página con menor número de
referencias� Si existe empate, se elige cualquiera de ellas
(orden parcial)� Problema:
� Se puede reemplazar página recién traída a memoria
46
Raúl Monge Departamento de Informática 136
Otra Implementación LFU• Mantener para cada marco un registro de
referencias.• Usar para ello un registro de desplazamiento• Periódicamente desplazar a la derecha y
marcar referencias sobre el bit más significativo.
• Se obtiene un decaimiento exponencial para el valor de referencia a una página
• Reemplazar la página con el menor valor en su registro.
Raúl Monge Departamento de Informática 137
Algoritmo de Segunda Oportunidad (Reloj)• Usar bit de referencia para cada marco de página• El conjunto de marcos se trata como un buffer
circular• Ante falta de página se reemplaza la primera página
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 búsqueda en sentido de reloj.
• Si la página no vuelve a ser referenciada en una vuelta, será reemplazada.
Raúl Monge Departamento de Informática 138
Asignación de Marcos� Problema:
� ¿Cómo distribuir los marcos libres de la memoria entre los procesos?
� Cantidad de marcos asignados determina desempeño del proceso.
� Consideraciones:� El sistema operativo requiere ocupar un número
necesario para mantener el núcleo.� Multiprogramación causa que procesos compitan
por los marcos libres de la memoria
47
Raúl Monge Departamento de Informática 139
Número Mínimo de Marcos
� Para que una instrucción se pueda ejecutar requiere un número mínimo de marcos asignados.
� Direccionamiento indirecto puede hacer aumentar este mínimo
� Conjunto de instrucciones del procesador es determinante del mínimo.
Raúl Monge Departamento de Informática 140
Algoritmos de Asignación
� Distribuir equitativamente los marcos libres
� Reconocer que los procesos requieren diferentes cantidades� Procesos más grandes reciben más:
� Favorecer a procesos más prioritarios
∑=
•= n
ijs
sma ii
1
Raúl Monge Departamento de Informática 141
Asignación Global vs. Local� Un factor importante es cómo hacer reemplazo:
� Sobre los marcos asignados al proceso (local)� Sobre cualquier marco (global)
� Reemplazo global puede adueñarse de marcos de otros procesos (e.g. Mayor prioridad), pero perjudica desempeño de algunos procesos.
� Reemplazo local mantiene constante número de marcos del proceso, pero limita a otros procesos de usar marcos con páginas poco usadas.
� En general, se prefiere reemplazo global (es más fácil de implementar)
48
UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍADepartamento de Informática
5.4.4 Localidad y Trashing
Raúl Monge Departamento de Informática 143
Concepto de Localidad• El concepto es central en la mayoría de las
estrategias de gestión de memoria virtual.• Procesos tienden a referenciar la memoria en
patrones no uniformes y altamente localizados:• Localidad temporal: Si se referencia una
localización de memoria, es probable que próximamente ésta misma se referencie nuevamente.
• Localidad espacial: Si se referencia una localización de memoria, es probable que a continuación sereferencie una localización contigua o vecina.
Raúl Monge Departamento de Informática 144
Localidad Temporal
• Ciclos repetitivos• Uso frecuente de una misma subrutina• Uso de stacks• Uso de variables globales (y comunes)
49
Raúl Monge Departamento de Informática 145
Localidad Espacial
• Ejecución secuencial de código• Recorrido de arreglos• Tendencia a agrupar variables
Raúl Monge Departamento de Informática 146
Ejemplo de Localidad
Raúl Monge Departamento de Informática 147
Frecuencia de Falta de Páginas
Fracción del Programa en MP
MayorLocalidad
ReferenciasAleatorias
FrecuenciaDe Falta dePáginas
1
1
f
∴∴∴∴ Un programa se ejecuta eficientemente en la medida que se mantengan en MPlas páginas donde están localizadas las referencias (páginas activas)
50
Raúl Monge Departamento de Informática 148
Hiperpaginación (Trashing)• En general, un proceso tiene un conjunto de páginas
de uso activo.• Si un proceso no tiene suficientes marcos asignados,
entonces reemplazará alguna de las páginas de uso activo.
• Entonces, la página reemplazada deberá ser nuevamente traída en el corto plazo a la MP.
• Por lo tanto, el proceso pasará gran parte de su tiempo esperando transferencias de E/S (ver cálculo del tiempo de acceso efectivo)
• Si la mayoría de los procesos sufre este fenómeno, la CPU quedará gran parte de su tiempo ociosa, con una fuerte carga de transferencias de E/S.
Raúl Monge Departamento de Informática 149
Efecto del Trashing
Utilización de CPU
1
Grado demultiprogramación
trashing
Raúl Monge Departamento de Informática 150
Control del Trashing� Principio:
� Para disminuir la hiperpaginación se debe disminuir el grado de multiprogramación.
� Cada proceso debe tener un número mínimo de marcos asignados (páginas activas en MP).
� Métodos de Control:� Conjunto de Trabajo� Frecuencia de Falta de Página
51
Raúl Monge Departamento de Informática 151
Conjunto de Trabajo (Working Set)
� ¿Cómo determinar dinámicamente cuál es el conjunto mínimo de páginas que hay mantener en MP sin entrar en trashing?
� P. Denning desarrolló la "Teoría del Conjunto de Trabajo para el Comportamiento de Programas" [CACM 11(5), May 1968, pp. 323-333]
Raúl Monge Departamento de Informática 152
Principio del Conjunto de Trabajo• Un programa puede ser cargado en memoria
sólo si existe suficiente espacio para acomodar su conjunto de trabajo
• El conjunto de trabajo son aquellas páginas con las cuales últimamente ha estado trabajando un programa (páginas activas, donde se localizan las referencias).
• Mientras no cambie la localidad, no se producen faltas de páginas.
Raúl Monge Departamento de Informática 153
Definición Formal de WS
t-∆ t∆
Tiempo de ejecuciónde Pi
Wi(t, ∆)
WSi(t, ∆) : Conjunto de trabajo del proceso Pi en el tiempo t con ventana ∆ (incluye todasaquellas páginas referenciadas entre t-∆ y t)
52
Raúl Monge Departamento de Informática 154
Observaciones al WS� Si , entonces se produce trashing� Conjunto de trabajo (WS) indica cuántas y cuáles
páginas mantener en MP para cada proceso.� WS cambio dinámicamente durante la ejecución de
un proceso.� ∆ debe ser ajustado para reducir tamaño de WS sin
provocar trashing.� Denning sugiere que ∆ equivalga a 10.000
referencias.� Se puede implementar una aproximación de WS
usando bit de referencia.
∑ >i
MPWSi ||
Raúl Monge Departamento de Informática 155
Control de Frecuencia de Falta de Página
• Medir la frecuencia de falta de página de cada proceso.
• Asignar más marcos si la frecuencia sobrepasa un límite superior fh
• Quitar marcos si la frecuencia baja de un límite inferior fl
Raúl Monge Departamento de Informática 156
Control de Falta de Páginas
Incrementar # marcos
FrecuenciaDe Falta dePáginas
# de marcos
fl
fh
decrementar # marcos
53
Raúl Monge Departamento de Informática 157
Observaciones• Si la frecuencia aumenta y no existen más
marcos libres, se debe suspender algún proceso
• Marcos libres se pueden distribuir sobre procesos con frecuencias altas
UNIVERSIDAD TÉCNICA FEDERICOSANTA MARÍADepartamento de Informática
5.4.5 Otras consideraciones
Raúl Monge Departamento de Informática 159
Prepaginación• Cuando arranca un proceso (tiene un costo)
� Se producen faltas de páginas hasta que se carga el WS.
� Cargar inmediatamente el WS (requiere determinarlo)
• Cuando se carga en la MP un proceso suspendido (swap-in):� Recordar el WS cuando se hace el swap-out
54
Raúl Monge Departamento de Informática 160
Tamaño de la Página• Se elige una potencia de 2 para facilitar
implementación• Compromiso entre fragmentación interna y tamaño
de la PT.• Tiempo de Acceso (latencia + transferencia) a una
página en disco.• Tamaño de los bloques de disco.• Página pequeño se ajusta mejor a la localidad del
programa• Página grande reduce la probabilidad de referenciar
otra página.
Raúl Monge Departamento de Informática 161
Bloqueo de E/S� Problema #1:
� Cómo asegurar que las transferencias de E/S se puedan realizar sin interferencia del reemplazo?
� Solución:� Copiar datos a través del kernel (costoso)� Bloquear algunas páginas en la MP
� Problema #2:� Cómo prevenir que páginas recién cargadas sean
reemplazadas?
Raúl Monge Departamento de Informática 162
Copy-on-Write• Idea:
� Página 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): Página(s)
que contiene(n) mensaje del emisor se mapea(n) al espacio del receptor.