Anda di halaman 1dari 54

UNIVERSIDAD TCNICA FEDERICOSANTA MARA Departamento de Informtica

Captulo V: Gestin de la Memoria


Visin del programa, mtodos de memoria contigua y memoria no contigua, memoria virtual

UNIVERSIDAD TCNICA FEDERICOSANTA MARA Departamento de Informtica

5.1 Conceptos Bsicos

Gestin de la Memoria

Buena utilizacin de los recursos del sistema requiere de multiprogramacin


Existen mltiples procesos Deben compartir la memoria

Se requiere de soporte especial de hardware:


Lograr un buen rendimiento Mayor seguridad en el acceso a 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

Proceso de Generacin de un Ejecutable


Tiempo de Compilacin Tiempo de Enlace

Programa Programa Fuente Fuente

CompiCompilador lador o o EnsamEnsamblador blador

Objeto Objeto

Editor Editor de de Enlaces Enlaces

Mdulo Mdulo de Carga de Carga

Objeto Objeto
Ral Monge Departamento de Informtica 6

Proceso de Carga
Tiempo de Carga Tiempo de Ejecucin

Programa Programa Ejecutable Ejecutable

Cargador Cargador

Imagen Imagen de memoria de memoria

Biblioteca Biblioteca del Sistema del Sistema

Biblioteca Biblioteca de Carga de Carga Dinmica Dinmica

Ral Monge

Departamento de Informtica

Direcciones Lgicas y Fsicas

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.

Direccin Direccin lgica lgica

traduccin traduccin

Direccin Direccin fsica fsica

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

Optimizacin 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 lgico sea menor que el fsico) Mtodos bsicos:
Overlays (sobreposiciones) Carga dinmica Enlace dinmico
Ral Monge Departamento de Informtica 11

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

Cdigo comn Manejo de sobreposiciones Paso 1 Paso 1 2

Espacio de Direcciones del Programa

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

UNIVERSIDAD TCNICA FEDERICOSANTA MARA Departamento de Informtica

5.2 Gestin de la Memoria con Asignacin Contigua

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

Limitacin: Aplicacin: dedicados


Ral Monge

No existen servicios Se usa slo en

sistemas

Departamento de Informtica

17

b) Monitor Residente

El espacio de memoria se divide en dos partes:


Espacio del Sistema Operativo (ncleo) Espacio de Usuarios

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

Esquema Simple de Monitor Residente


Sistema Operativo No se soporta multiprogramacin!

Usuario2 Usuario1

Libre
Ral Monge Departamento de Informtica 19

UNIVERSIDAD TCNICA FEDERICOSANTA MARA Departamento de Informtica

c) Multiprogramacin con Particiones

Reubicacin Dinmica con Proteccin


Memoria
Registro de Reubicacin

base base Direccin Lgica dir dir

base dir Direccin Fsica

+ +
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

c1) Particiones Fijas (o Estticas)


El espacio usuario se divide en particiones de tamao fijo En cada particin puede cargarse un proceso (i.e. el grado de multiprogramacin est a priori acotado al nmero de particiones). Cambiar el tamao de las particiones requiere detener y arrancar nuevamente el sistema. La disponibilidad de particiones libres permite admitir un nuevo trabajo que calce en la particin (planificacin de largo plazo). Se pueden aplicar tcnicas de overlays, pero son transparentes al sistema operativo
Ral Monge Departamento de Informtica 23

Ejemplo de Particiones Estticas


IBM OS/360 con MFT (Procesamiento Batch)

Monitor 2K 6K

2K 1K 2K 5K 3K 4K

7K 11K 8K

12K

Ral Monge

Departamento de Informtica

24

Planificacin de Trabajos con Particiones Estticas

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

best-avalaible-fit. Particiones diferentes tamao con cola nica.

de

Trabajos se planifican considerando la particin disponible donde mejor calzan


Ral Monge Departamento de Informtica 25

Fragmentacin Interna y Externa

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

c2) Particiones Variables (o Dinmicas)

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

(MVT de IBM OS/360)


Secuencia de Trabajos: P1 (60K), P2 (100K), P3 (30K), P4 (70K), P5 (50K)
0 S.O. 40 P1 100 P2 Sale P2 100 Llega P4 170 200 P3 230 256 Ral Monge 230 256 200 P3 230 256 200 P3 230 256 40 P1 100 P4 0 S.O. 40 P1 0 S.O. Sale P1 40 0 S.O. Llega 40 P5 90 100 P4 100 P4 0 S.O. P5

170 200 P3

170 200 P3 230 256 28

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

Planificacin de Trabajos con Particiones Dinmicas

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

Cuantificacin de la Fragmentacin Externa

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

Problemas con Particiones Dinmicas


La prctica demuestra que first-fit y best-fit ofrecen los mejores rendimientos, sin embargo: Se pueden producir fragmentos libres muy pequeos
Solucin: fundirla con la particin ocupada anterior o usar bloques de tamao fijo (produce fragm. interna).

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

Resumen sobre Fragmentacin

Tipo de Particin Esttica Dinmica

Fragmentacin interna SI NO

Fragmentacin externa SI SI (pero se puede compactar)

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:

Peridicamente (espacio libre) > tamao prximo trabajo

Se debe considerar que la compactacin tiene un costo:

Cunto cuesta mover bloques de la memoria?

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

Comentarios sobre Compactacin

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

UNIVERSIDAD TCNICA FEDERICOSANTA MARA Departamento de Informtica

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

Proceso Proceso P1 P2 Espacio de Usuarios 2) Swap-in

1) Swap-out

Proceso P1

Proceso P2

Ral Monge

Departamento de Informtica

40

Ejemplo de Clculo

Supongamos disco con:


8 [ms] de tiempo de bsqueda 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, 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

Problemas con Swapping

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

UNIVERSIDAD TCNICA FEDERICOSANTA MARA Departamento de Informtica

5.3 Gestin de la Memoria con Asignacin No Contigua

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

UNIVERSIDAD TCNICA FEDERICOSANTA MARA Departamento de Informtica

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

Asociacin entre Pgina y Marco


Programa 0 0 1 1 2 2 3 3 4 4 Pgina Marco 0 4 1 2 2 6 3 7 4 0 Memoria Principal 0 4 1 1 2 3 4 5 6 7 8 0 2 3
48

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

Traduccin Traduccin Si P es tamao de pgina entonces: f d


Departamento de Informtica

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

Tamao tpico de P: 512 B a 8 KB


51

Departamento de Informtica

17

Implementacin Bsica del Mecanismo de Traduccin


Direccin Lgica p d PT Direccin Fsica f d f*P d Memoria Principal

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

Fragmentacin y Tamao de Pgina


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

Tiempo de Acceso Efectivo

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

Implementacin con TLB


Direccin Lgica TLB p d f d d xito f*P Direccin Fsica Memoria Principal

p Sin xito b Registro PTBR p b

PT

Ral Monge

Departamento de Informtica

59

Tiempo de Acceso Efectivo con TLB


Supongamos:

Tef

: Tiempo de acceso efectivo a memoria

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.

Si accesos tienden a concentrarse en ciertas zonas de la memoria, se mejora el desempeo


Ral Monge Departamento de Informtica 62

Clculo del Tiempo de Acceso Efectivo con Memoria Cache


Se debe considerar tasa de xito de encontrar la pgina en memoria cache. Se debe considerar que parte de tabla de pginas (no la TLB) tambin 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 pgina como a la pgina objetivo.
Ral Monge Departamento de Informtica 63

21

Activacin de la Traduccin

El SO puede activar o desactivar el modo de traduccin dinmica de direcciones.


Modo desactivado usa directamente direcciones fsicas

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

Proteccin de Modo de Acceso


Tpicamente existen tres modos de accesos:
Lectura Escritura Ejecucin

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

Ejemplo de Comparticin de Pginas


Proceso P1 Ed1 Ed2 Ed3 Data1 3 4 PT1 6 1 Proceso P3 Ed1 Ed2 Ed3 Data3 3 4 PT3 6 7 0 1 Data1 2 Data2 3 4 5 6 Ed3 7 Data 3 8 Ed1 Ed2

Ed1 Ed2 Ed3 Data2

4 PT2 6 2 Proceso P2

Ral Monge

Departamento de Informtica

69

23

Problema con Tamao de Tabla de Pginas


Computadores modernos soportan espacios lgicos de direcciones de 232 a 264 bits Tales direcciones requieren tablas de pginas demasiado grandes Se hace inmanejable mantener tales tablas en memoria contigua.
Ral Monge Departamento de Informtica 70

Ejemplo de Tamao de Tabla de Pgina


Supongamos:
Direccin de 32 bits Pginas 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
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

Comentarios sobre Paginacin Multinivel


Dos niveles son adecuado hasta 32 bits Muchas arquitecturas de 32 bits usan ms niveles
SPARC de 32 bits: 4 niveles Motorola 68030 de 32 bits: 3 niveles.

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

Tabla de Pginas Invertida


Una crtica al mtodo anterior es que una PT puede consistir de millones de entrada, existiendo una por proceso. Tal situacin consume mucha memoria. Una solucin es una tabla de pginas invertida con una entrada por cada pgina real (marco), que es comn a todos los procesos.
Direccin lgica es 3-tupla: <pid, p, d> Cada entrada en la tabla tiene el par: <pid, p> Posicin relativa en la tabla permite determinar f

Ral Monge

Departamento de Informtica

75

25

Esquema de Traduccin Dinmica con Tabla Invertida


Direccin Lgica pid p d Memoria Principal Direccin Fsica f d f*P d

bsqueda
pid p

Ral Monge

Departamento de Informtica

76

Comentarios sobre Tablas Invertidas de Pginas


Una Entrada no encontrada en la tabla significa direccin ilegal. Usado en mquinas IBM (IBM System/38, IBM RISC 6000, IBM RT) Reduce espacio de memoria ocupado por tablas. Sin embargo, se aumenta tiempo de bsqueda
Se usan tabla de hash y memoria asociativa

No es un esquema popular (es difcil compartir memoria)


Ral Monge Departamento de Informtica 77

UNIVERSIDAD TCNICA FEDERICOSANTA MARA Departamento de Informtica

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

Ejemplo de Visin Lgica del Usuario

Stack Cdigo S2 S0 Datos Globales S1 Heap S3 Biblioteca S4

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

Implementacin Bsica del Mecanismo de Traduccin


Direccin Lgica s d ST Direccin Fsica Memoria Principal

+
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

lmite 1000 400 400 1100 1000

base 1400 6300 4300 3200 4700

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

Proteccin y Comparticin de Memoria


Segmentacin facilita el control de la comparticin y proteccin de la memoria. Para protecciones se mantiene informacin adicional en ST sobre mtodos de acceso permitidos

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

Lmite 25.286 8.550

Base 43.062 90.003

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

UNIVERSIDAD TCNICA FEDERICOSANTA MARA Departamento de Informtica

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

Esquema de Traduccin Dinmica


Direccin Lgica s d ST p d lim bp PT de s bp d bs + Memoria Principal

bs STBR

+ d < lim NO trap

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

UNIVERSIDAD TCNICA FEDERICOSANTA MARA Departamento de Informtica

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

UNIVERSIDAD TCNICA FEDERICOSANTA MARA Departamento de Informtica

5.4 Gestin de Memoria Virtual

UNIVERSIDAD TCNICA FEDERICOSANTA MARA Departamento de Informtica

5.4.1 Introduccin a Memoria Virtual

33

Objetivo de la Gestin de Memoria


El objetivo principal de la administracin moderna de memoria es mantener simultneamente en la memoria el mayor nmero posible de procesos. Para ello es deseable poder distribuir el espacio fsico disponible entre un mayor nmero de procesos.

Ral Monge

Departamento de Informtica

100

Porqu no cargar completamente un programa?


La lgica del programa determina que ciertas partes no se ejecutan. Existe cdigo que maneja situaciones de excepcin. Arreglos, listas y tablas asignan normalmente mayor memoria que la realmente requerida. No todas las partes de un programa requieren estar simultneamente en memoria (referencias se concentran en ciertas zonas de memoria).
Ral Monge Departamento de Informtica 101

Definicin de Memoria Virtual


tcnica que permite la ejecucin de un proceso que no requiere estar completamente en memoria principal, siendo esta caracterstica trasparente para el programador.

Ral Monge

Departamento de Informtica

102

34

Caractersticas de la Memoria Virtual


Ventajas
Aumenta grado de multiprogramacin al requerir menos memoria real por proceso Programas pueden ser mayores que el espacio de memoria fsica. Se requiere menor trfico de E/S para "swappear" un programa Libera al programador de preocuparse de limitaciones de memoria (como es el caso con overlays y carga dinmica)

Desventajas
Puede disminuir notablemente el desempeo del sistema. Se requiere de mecanismos ms complejos de administracin.

Ral Monge

Departamento de Informtica

103

Ejemplo de Paginacin Bajo Demanda


marco
0 1 2 3 4 5 6 7 A B C D E F G H 0 1 2 3 4 5 6 7

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

Estrategias para la Gestin de la Memoria Virtual

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

Paginacin por Demanda

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

UNIVERSIDAD TCNICA FEDERICOSANTA MARA Departamento de Informtica

5.4.2 Falta de Pginas

Procesamiento de Falta de Pgina


if (pgina p no est en MS) terminar el proceso; else { /* traer pgina a MP */ if (no existe marco libre) { /* realizar un reemplazo */ elegir una pgina 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 pgina a marco asignado f */ planificar lectura de p desde MS y transferir a f; wait (transferencia); actualizar tabla de pgina con marco f poner bit de validacin = 1; recomenzar la ltima instruccin; }
Ral Monge Departamento de Informtica 110

Sobre las Faltas de Pgina

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

Tiempo de Acceso Efectivo


Sea: p Tmp Tfp Tef probabilidad de falta de pgina tiempo de acceso de memoria principal tiempo de acceso con falta de pgina tiempo de acceso efectivo de memoria principal

Entonces el tiempo de acceso efectivo es: Tef = (1-p)* Tmp + p* Tfp y se puede deducir que:

Tef Tfp = 1+ p *( 1) Tmp Tmp


112

Ral Monge

Departamento de Informtica

Ejemplo de Desempeo (1/2)


Si : Tmp Tfp = 100 [ns] = 20 [ms]

Se tiene que: Tef = (1-p)* 100 + p* 20*106 [ns] 100 + 19.999.900*p [ns]

Ral Monge

Departamento de Informtica

113

Ejemplo de Desempeo (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 ms de una falta de pgina en 2.000.000 accesos a MP!!
Ral Monge Departamento de Informtica 114

38

Anlisis del Desempeo


Se puede reducir el desempeo:
Usando discos rpidos de manera de mantener baja la relacin Tfp/Tmp Reducir la probabilidad p de falta de pgina

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

UNIVERSIDAD TCNICA FEDERICOSANTA MARA Departamento de Informtica

5.4.3 Reemplazo de Pginas

Cmo crear espacio libre?


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

Problemas bsicos de Paginacin bajo Demanda

Algoritmo de Asignacin de Pginas


Cuntos marcos asignar a cada proceso?

Algoritmo de Reemplazo de Pginas


Qu pgina reemplazar?

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.

Algoritmo elegido tiene fuerte impacto en el desempeo.

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

Ejemplo de Reemplazo ptimo


A A* X B A B* X C A B C* X D A B D* X A A B D B A B D E A B E* X A A B E B A B E C C* B E X D C D* E X E C D E

Produce 7 faltas de pgina!!!

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

Ejemplo: Reemplazo FIFO (1/2)


A A* X

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

Produce 9 faltas de pgina!!!

Ral Monge

Departamento de Informtica

126

42

Ejemplo: Reemplazo FIFO (2/2)


Se aumenta a 4 marcos de pginas
A A* X

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

Produce 10 faltas de pgina!!!

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:

(Least Recently Used)


Aproximacin al reemplazo ptimo basado en la heurstica de que el pasado reciente es buen indicador del futuro inmediato

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

Ejemplo de LRU (1/2)


Usando 3 marcos:
A A* X 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 A E B B B A E C C* B A X D D* C B X E E* D C X

Produce 10 faltas de pgina!!!

Ral Monge

Departamento de Informtica

130

Ejemplo de LRU (2/2)


Usando 4 marcos:
A A* X B B* A X C C* B A X D D* C B A X A A D C B B B A D C E E* B A D X A A E B D B B A E D C C* B A E X D D* C B A X E E* D C B X

Produce 8 faltas de pgina!!!

Ral Monge

Departamento de Informtica

131

Algoritmos de Aproximacin a LRU


Objetivo:
usar estrategias de reemplazo que hagan decisiones razonables, y que tengan un bajo overhead en su realizacin

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

Prioridad de Reemplazo en NUR


PRIORIODAD Ref 0 1 0 2 1 3 1 4 Mod 0 1 0 1 OBSERVACIN NO referenciado recientemente y NO modificado Referenciado recientemente, pero NO modificado

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

Otra Implementacin LFU


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

Algoritmo de Segunda Oportunidad (Reloj)


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

Nmero Mnimo de Marcos


Para que una instruccin se pueda ejecutar requiere un nmero mnimo de marcos asignados. Direccionamiento indirecto puede hacer aumentar este mnimo Conjunto de instrucciones del procesador es determinante del mnimo.
Ral Monge Departamento de Informtica 139

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

Favorecer a procesos ms prioritarios


Ral Monge Departamento de Informtica 140

Asignacin Global vs. Local


Un factor importante es cmo hacer reemplazo:
Sobre los marcos asignados al proceso (local) Sobre cualquier marco (global)

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

UNIVERSIDAD TCNICA FEDERICOSANTA MARA Departamento de Informtica

5.4.4 Localidad y Trashing

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

Ejecucin secuencial de cdigo Recorrido de arreglos Tendencia a agrupar variables

Ral Monge

Departamento de Informtica

145

Ejemplo de Localidad

Ral Monge

Departamento de Informtica

146

Frecuencia de Falta de Pginas


Frecuencia De Falta de Pginas

1 Mayor Localidad Referencias Aleatorias

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

Efecto del Trashing


Utilizacin de CPU

trashing

Grado de multiprogramacin

Ral Monge

Departamento de Informtica

149

Control del Trashing


Principio:
Para disminuir la hiperpaginacin se debe disminuir el grado de multiprogramacin. Cada proceso debe tener un nmero mnimo de marcos asignados (pginas activas en MP).

Mtodos de Control:
Conjunto de Trabajo Frecuencia de Falta de Pgina
Ral Monge Departamento de Informtica 150

50

Conjunto de Trabajo (Working Set)


Cmo determinar dinmicamente cul es el conjunto mnimo de pginas que hay mantener en MP sin entrar en trashing? P. Denning desarroll la "Teora del Conjunto de Trabajo para el Comportamiento de Programas" [CACM 11(5), May 1968, pp. 323-333]
Ral Monge Departamento de Informtica 151

Principio del Conjunto de Trabajo

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

Control de Frecuencia de Falta de Pgina

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

Control de Falta de Pginas


Frecuencia De Falta de Pginas

Incrementar # marcos

fh fl

decrementar # marcos # de marcos

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

UNIVERSIDAD TCNICA FEDERICOSANTA MARA Departamento de Informtica

5.4.5 Otras consideraciones

Prepaginacin

Cuando arranca un proceso (tiene un costo)


Se producen faltas de pginas 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

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

Anda mungkin juga menyukai