Está en la página 1de 16

Contenido Tema 10

Principios de la memoria virtual. Hardware y estructuras de control

Memoria Virtual

Memoria virtual basada en paginacin. Segmentacin y segmentacin + paginacin. Aspectos de diseo e implementacin. Poltica de lectura. Poltica de ubicacin. Poltica de reemplazo. Gestin del conjunto residente. Poltica de vaciado. Control de Carga
2

Software del sistema operativo.

Secciones Stallings: 8.1 - 8.2

A.Ortigosa

Memoria Virtual
Memoria Virtual: Mtodo para conseguir que la suma de los espacios de pila, datos y texto de un programa pueda ser mayor que el tamao fsico de la memoria disponible para l. (Fotheringham, 1961) El SO mantiene en memoria solo las partes del programa que se estn utilizando (conjunto residente) y mantiene en disco el resto.

Memoria Virtual
Ventajas: Permite optimizar uso de memoria:

mantiene ms procesos en memoria principal mantiene en disco partes del proceso poco usadas (rutinas de atencin a errores poco frecuentes, funciones de uso espordico, datos no usados, )

Permite que un proceso sea ms grande que toda la memoria principal Permite multiprogramacin muy efectiva Se encarga el SO => evita al usuario la preocupacin por programar con superposicin

A.Ortigosa

A.Ortigosa

Memoria Virtual
Fallos de direccionamiento:

Paginacin
La memoria fsica se divide en bloques de tamao fijo que llamamos marcos. La memoria virtual se divide en bloques del mismo tamao llamados pginas. Los programas se dividen en pginas Al ejecutar un proceso se cargan sus pgs. en los marcos disponibles (SO mantiene lista de marcos) La vinculacin de direcciones:

Se genera interrupcin, indica fallo de acceso a memoria Proceso pasa a bloqueado, SO a ejecucin SO emite solicitud de E/S al disco SO expide otro proceso para que se ejecute Tras traer fragmento a memoria, interrupcin de E/S, control al SO, que pasa el proceso a listo. SO ms tiempo intercambiando fragmentos que ejecutando (ej: si saca de memoria un fragmento que se iba a usar ya).

Posible hiperpaginacin (thrasing):


Solucin: el SO adivina qu fragmentos se usarn prximamente.


A.Ortigosa
5

Usa tabla de pginas (normalmte. 1/proceso) Requiere soporte por hardware (Manejador de Memoria)

A.Ortigosa

Paginacin
Direccin lgica (virtual) CPU p d p Pgina (virtual) desplazamiento n marco (m) Tabla de pginas Pgina (fsica) -marcoPtero a tabla de pginas Direccin fsica m d Memoria

Tablas de pginas
- Son tablas que contienen (para cada proceso) el n marco que corresponde a cada pgina virtual del proceso - Estructura de una entrada de la Tabla de Pginas:
Nmero de marco bit presente (1) ausente (0) proteccin (permisos) del marco (RWX) bit Modificado (1) o no (0): lo usa el intercambiador para saber si debe copiar el marco a disco o no Caching Desactivado/Activado (lo veremos en E/S) 0 No usado

A.Ortigosa

A.Ortigosa

Tablas de pginas
- -

Paginacin
No hay fragmentacin externa Fragmentacin interna en los marcos Intento de acceso a pgina virtual sin marco asociado => interrupcin que llega al SO (trap): fallo de pgina Como respuesta al fallo de pgina, el SO:

Tamao de pgina viene definido por el Hw. y suele ser una potencia de 2 que vara entre 512 y 16M Ej simplificado: Direccionamiento de un espacio virtual de 64K, distribuido en 16 pginas de 4K: 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 010 001 110 000 100 011 000 000 000 101 000 111 000 000 000 000 1 1 1 1 1 1 0 0 0 1 0 1 0 0 0 0

bit presente/ausente Desplazamiento (12 bits)

pgina Virtual (4 bits) marco

Selecciona una pgina poco usada del proceso Intercambia la pgina a disco Asigna el marco de la pgina liberada a la pgina virtual que se intenta acceder Supone reasignacin dinmica por bloques de las direcciones de memoria del proceso
10

A.Ortigosa

1 1 0 0 0 0 0 0 0 0 0 0 1 0 0

A.Ortigosa

Rendimiento de un sistema de paginacin


Tiempo de acceso efectivo a memoria (tae) para un sistema de paginacin de memoria mononivel: tae= tb + (1 - p) x tam + p x (t-fallo + tam) tb: tiempo medio de bsqueda en la tabla de pginas p: probabilidad de que ocurra un fallo de pgina tam: tiempo de acceso a memoria tfallo: tiempo de resolucin de un fallo de pgina. Tiene tres componentes principales: 1. Atender la interrupcin de fallo de pgina 2. Traer la pgina a la memoria 3. Continuar el proceso
A.Ortigosa
11

Segmentacin
Tcnica para mantener espacios independientes de direcciones virtuales, llamados segmentos.

Pueden ser de distintos tamaos, incluso variar de tamao dinmicamente

Direccin = n segmento + desplazamiento La segmentacin permite:

Desentenderse de la administracin interna de la memoria virtual del proceso, es decir, del control del crecimiento, decrecimiento y ajuste entre s de las distintas partes del proceso. Modificar y recompilar mdulos independientemente Asignar permisos distintos a las partes del proceso Compartir datos o procedimientos entre procesos
12

A.Ortigosa

Segmentacin
Estructura de una entrada en la tabla de segmentos
Otros bits de control Longitud del segmento Base del segmento

Segmentacin
Los segmentos se direccionan desde 0 hasta una direccin mxima, que puede variar. La segmentacin pura puede producir problemas de fragmentacin externa. La segmentacin es visible para el programador

bit presente (1) ausente (0) bit Modificado (1) o no (0)

A.Ortigosa

13

A.Ortigosa

14

Segmentacin
Direccin lgica
S D Direccin real (B+D)

Paginacin + Segmentacin
Paginacin es invisible al programador; segmentacin es visible para el programador Espacio de direcciones dividido en segmentos, cada segmento en varias pginas de tamao fijo = marco de memoria Si segmento < pgina, ocupa 1 pgina

Puntero a tabla de segmentos n segmento

despl.

Segmento

Longitud Base

Tabla de Segmentos

A.Ortigosa

15

A.Ortigosa

16

Paginacin + Segmentacin

Paginacin + Segmentacin
Direccin virtual
Nmero de segmento Nmero de pgina Desplazamiento

N segmento

desplazamiento programador

Entrada en la tabla de segmentos


Otros bits de control Longitud Base de segmento

Entrada en la tabla de pginas

N segmento

N pgina

desplazamiento S.O.

Otros bits de control

Nmero de marco

bit presente (1) ausente (0) bit Modificado (1) o no (0)

A.Ortigosa

17

A.Ortigosa

18

Paginacin + Segmentacin
Direccin lgica
S P D M D

Puntero a tabla de segmentos n segmento

despl.

Tabla de Pginas (*)


n pag.

Marco de Pgina

+
(*)

Tabla de Segmentos

1 tabla de pgs/segmento Tabla de segmentos nos da direccin de la tabla de pginas del segmento
A.Ortigosa
19

A.Ortigosa

20

Aspectos de diseo
El tiempo de asociacin debe ser reducido Soluciones basadas completamente en hardware (utilizando registros) son las ms rpidas

Aspectos de diseo
Cuanto menor tamao de pgina:
menor cantidad de fragmentacin interna. mayor n de pginas necesarias por proceso => las tablas de pginas sern mayores => puede que no quepan en memoria principal!

Esto slo es vlido si las tablas son pequeas

Ej: sistemas de direccionamiento por 64 bits (20 Tb= 264), n pginas de (p.ej) 4K es 252 => Impensable mantener tablas de pginas de esa longitud! Memoria secundaria diseada para transferir eficazmente bloques de datos de mayor tamao => propicia para tamaos de pgina mayores

A.Ortigosa

21

A.Ortigosa

22

Aspectos de diseo

Paginacin multinivel
Evita tener siempre en memoria tablas de pginas completas

Opciones:

Paginacin multinivel: una parte de las tablas de pginas deben estar en la memoria virtual, sujetas a paginacin tambin Tablas de pginas invertidas

dividiendo la tabla en sub-tablas y manteniendo en memoria slo las que sean necesarias en cada momento

A.Ortigosa

23

A.Ortigosa

24

Paginacin multinivel
Direccin lgica p1 p2 d p1 p2 Tabla de pginas de nivel superior Tablas de pginas de segundo nivel 0 () Direccin fsica f d Memoria Tabla de pginas raz (4KBytes)

Paginacin multinivel

Tabla de pginas Usuario (4MBytes)

Espacio de direcciones del usuario (4KBytes)

Ejemplo tabla de pginas de dos niveles


25

A.Ortigosa

A.Ortigosa

26

Tablas de pginas invertidas


Tabla de pginas con tantas entradas como marcos Cada entrada contiene direccin virtual que usa dicho marco

Tablas de pginas invertidas


direccin virtual (n bits)

(ndice = marco al que se refiere) N pgina ID proceso Bits de control Puntero encadenamiento

Tabla hash para buscar direcciones virtuales Encadenamiento para resolver colisiones Si una direccin virtual no se encuentra en la tabla invertida, se hace una bsqueda en una tabla convencional, que puede estar en memoria o en disco.
A.Ortigosa
27

A.Ortigosa

28

Buffer de traduccin adelantada (TLB)


Solucin para acelerar acceso a marcos, cuando tablas de procesos muy grandes (bsqueda lenta) y/o organizadas en niveles (requiere mltiples accesos a memoria). Se basa en que los procesos acceden normalmente a un n pequeo de pginas (y espordicamente al resto). Solucin: dotar al ordenador de Hw (memoria asociativa) para asociar pginas de uso frecuente con marcos sin acceder a la tabla de pginas

Memoria asociativa
direccin lgica direccin fsica

CPU

d
Vlido?Modificado? (0,1) (0,1) 1 #pgina 0 proteccin #marco

Memoria

Tamao de memoria asociativa: 8-32 entradas normalmente Proporcin de encuentros: proporcin de accesos a la memoria asociativa que son exitosos

Comprueba coincidencia (por Hw) Correspondencia asociativa

Memoria Asociativa - TLB p


encontrada fallo

Tabla de pginas
30

A.Ortigosa

29

A.Ortigosa

Buffer de traduccin adelantada (TLB)


(viene de abajo)
no PV presente s Vlido? s no Permiso? s accede marco s Trampa al SO por error de acceso
A.Ortigosa

Buffer de traduccin adelantada (TLB)

Fallo de TLB Busca en tabla de Pginas PV presente s no permiso no

Extrae entrada antigua Introduce la nueva PV en la memoria asociativa

no

Fallo de pgina

Trampa al SO por error de acceso

Lee marco

Intercambio desde disco y actualizacin (sigue arriba) de memo asociativa

31

A.Ortigosa

32

Cach
Todo lo anterior (MV) debe interactuar con la cach de la memoria principal: Consultar TLB -Si est: direccin fsica = n marco + despl. -Si no, consultar tabla de pginas -Si est, construir direccin real = n marco + despl. -Si no, fallo pgina (interrupcin E/S, cargar de disco, actualizar cach, tabla de pgs. etc) - Buscar en cach Si est: ya tenemos el bloque Si no: sacar el bloque de memoria principal
-

TLB + Cach

A.Ortigosa

33

A.Ortigosa

34

Aspectos de diseo
Tasa de fallos de pgina Tasa de fallos de pgina

Aspectos de diseo
Si tamao de pgina pequeo:

(a) Tamao de pgina

(b) Nmero de marcos de pgina asignados

P = Tamao del proceso completo W = Tamao del conjunto de trabajo N = Nmero total de pginas del proceso Figura 8.11. Comportamiento tpico de la paginacin en un programa.
A.Ortigosa
35

Menor cantidad de fragmentacin interna. Para cada proceso, gran n pginas disponibles en memo principal Despus de un tiempo, todas las pgs. de memoria contendrn parte de las refs. ms recientes del proceso => la tasa de fallos de pgina ser menor. Mayor n de pginas necesarias por proceso => tablas de pginas mayores => algunas en memoria virtual tambin => pueden ocurrir varios fallos de pgina en 1 nica ref. a memoria
36

A.Ortigosa

Aspectos de diseo
Transferencia de bloques de memo secundaria ms eficiente si pginas grandes Incrementar el tamao de la pgina => cada pgina contendr posiciones cada vez ms distantes de cualquier referencia reciente (principio de cercana) => tasa de fallos mayor pero decrece cuando tam. pg. tiende al tam. del proceso
A.Ortigosa
37

Aspectos de diseo
Para un tamao de pgina fijo:

Tasa de fallos baja si sube n pginas en memoria principal => la poltica del Sw (cantidad de memoria asignada a cada proceso) afectar a la decisin sobre el diseo del Hw.

A.Ortigosa

38

Aspectos de diseo
Tabla 8.2. Ejemplos de tamaos de pginas.

Computadora Atlas Honeywell-Multics IBM 370/XA y 370/ESA Familia VAX IBM AS/400 DEC Alpha MIPS UltraSPARC Pentium Power Pc 512 bytes

Tamao de pgina 512 palabras de 48 bits 1.024 palabras de 36 bits 4 Kbytes 512 bytes 8 Kbytes de 4 Kbytes a 16 Mbytes de 8 Kbytes a 4 Mbytes de 4 Kbytes a 4 Mbytes 4 Kbytes

A.Ortigosa

39

A.Ortigosa

40

Sw del Sistema Operativo


Polticas de lectura (previa / bajo demanda) Polticas de ubicacin (mejor/peor/primer ajuste, ...) Polticas de reemplazo (ptima, LRU, FIFO, reloj, ...) Gestin del conjunto residente (tamao, asignacin fija/variable, reemplazo local/global) Polticas de vaciado (por demanda/previo) Control de carga
A.Ortigosa
41

Diseo de Gestor de Memoria


Depende de:
1. 2. 3.

Uso o no de memoria virtual Uso de paginacin, segmentacin o ambas Algoritmos empleados para los problemas de gestin de memoria

1 y 2 dependen del Hw disponible 3 depende del Sw del SO Actualmente, casi todos SSOO ofrecen MV (DOS y primeros UNIX no) Al usar paginacin+segmentacin, la mayora de problemas surgen en la paginacin
A.Ortigosa
42

Polticas de Memoria Virtual


Factor clave para el diseo: rendimiento Minimizar porcentaje de fallos de pginas

Polticas de Memoria Virtual


Polticas del SO sobre la memoria virtual:

(tambin cuando ejecuta parte de proceso mientras busca pgina que fall para otro)

Polticas de Lectura Polticas de Ubicacin Polticas de Reemplazo Gestin del Conjunto Residente Polticas de Vaciado Control de Carga

No hay una poltica definitivamente mejor que las otras

A.Ortigosa

43

A.Ortigosa

44

Polticas de Memoria Virtual


Rendimiento depende de:

Polticas de Lectura (fetch)


Cundo cargar una pgina en memoria principal? Paginacin por demanda:

Tamao de memoria principal Velocidad relativa de memoria principal y secundaria Tamao y n de procesos que compiten por los recursos Comportamiento de programas individuales:

Se carga la pgina slo cuando hay fallo Muchsimos fallos al inicio Luego debe disminuir Aprovecha caractersticas de los discos Se pueden cargar pginas innecesarias (si son la mayora, poltica no efectiva) Distinto de intercambio de pginas (paso a suspendido)
46

Aplicacin Lenguaje de programacin y compilador Estilo de programador Comportamiento de usuario (si programa es interactivo)

Paginacin previa:

=> no hay una solucin mejor

A.Ortigosa

45

A.Ortigosa

Polticas de Ubicacin
Dnde va a residir una parte de un proceso en la memoria principal? Es una decisin importante en sistemas con segmentacin

Polticas de Reemplazo
Cul es la pgina a reemplazar (de entre el conjunto de candidatas)? Gestin del Conjunto Residente (despus):

Mejor ajuste, primer ajuste, etc.

Carece de importancia en sistemas con paginacin (con y sin segmentacin).


A.Ortigosa

N marcos de pgina a asignar para cada proceso? Reemplazar slo pginas del propio proceso o de cualquier otro?

47

A.Ortigosa

48

Algoritmos de Reemplazo
Tras un fallo de pgina (FdP.), se debe elegir qu pgina de memoria se lleva a disco para hacer sitio a la nueva pgina. Objetivo: reemplazar la pgina con menor posibilidad de ser referenciada en un futuro cercano => intentar predecir comportamiento futuro en funcin del comportamiento pasado Cuanto + elaborada es la poltica, mayor sobrecarga Sw y Hw
A.Ortigosa
49

Algoritmos bsicos de reemplazo


ptima Usada menos recientemente (LRU, Least Recently Used) Primera en entrar, primera en salir (FIFO) Reloj Reloj mejorado (NRU) * Almacenamiento intermedio de pginas Ejemplo:

Proceso al que se le asignan 3 marcos de memoria Secuencia de accesos para el proceso:

Pginas =
A.Ortigosa

232152453252
50

Algoritmo ptimo
Se reemplaza la pgina que tenga que esperar ms tiempo para ser referenciada. Esta poltica genera el menor nmero de FdP. Problema: Es irrealizable ya que el SO no tiene forma de saber cundo se va a realizar un nuevo acceso a una pgina.

Algoritmo ptimo
Comportamiento:
2
2

3 2 1
2 3 2 3 2 3 1

5 2
2 3 5 2 3 5

4 5
4 3 5 4 3 5

3 2
4 3 5 2 3 5

5 2
2 3 5 2 3 5

F F

F F

Es posible si se ejecuta en modo simulacin, se computan los accesos a las pginas, y esos cmputos se utilizan en sucesivas ejecuciones Sirve como estndar de comparacin
51

Nmero de fallos de pgina = 3 + 3 iniciales

A.Ortigosa

A.Ortigosa

52

Algoritmo LRU
Pgina usada hace ms tiempo (Least Recently Used) Basado en Principio de Cercana

Algoritmo LRU
Comportamiento:
2
2

3 2 1
2 3 2 3 2 3 1

5 2
2 5 1 2 5 1

4 5
2 5 4 2 5 4

3 2
3 5 4 3 5 2

5 2
3 5 2 3 5 2

mirar al pasado y estimar cul podra ser el uso de la pgina en funcin de l

F F

F F

F F

Nmero de fallos de pgina = 4 + 3 iniciales

A.Ortigosa

53

A.Ortigosa

54

Algoritmo LRU
Ventaja: se acerca al algoritmo ptimo Desventaja: difcil de implementar:
Implementacin A: Tabla = Pila de n de pgina Tope = pgina ms recientemente usada Actualizacin de tabla lenta, an usando Hw especial Implementacin B: Contadores: Las entradas de la tabla de pginas tienen un campo de tiempo de uso en el que el Manejador de Memoria escribe el tiempo de cada referencia Cada acceso a memoria requiere bsqueda en tabla de pginas y una escritura en memoria Requiere Hw especial
A.Ortigosa
55

Algoritmo FIFO
Primera en entrar, primera en salir.

Supone que una pgina introducida hace mucho tiempo puede haber cado en desuso Cuando se produce un FdP. y no hay marcos libres, se quita la pgina que lleve ms tiempo en memoria Buffer circular de marcos de un proceso + puntero Round Robin para eliminar pginas de memoria

Sencillo de implementar Puede no ser efectivo:

Regiones muy usadas durante toda la ejecucin


56

A.Ortigosa

Algoritmo FIFO
Comportamiento:
2
2

Algoritmo FIFO
Implementacin:
(a) Cada entrada de la tabla tiene un registro asociado con el instante de carga de la pgina
2,3 0,1 1,2

3 2 1
2 3 2 3 2 3 1

5 2
5 3 1 5 2 1

4 5
5 2 4 5 2 4

3 2
3 2 4 3 2 4

5 2
3 5 4 3 5 2

N de pgina

Instante de entrada en tabla

F F

F F F F

F F

Nmero de fallos de pgina= 6 + 3 iniciales

(b) El SO mantiene la tabla de pginas en orden de antigedad (FIFO)


0 1 2
58

+ antiguo + nuevo
A.Ortigosa
57

A.Ortigosa

Anomala de Belady
3 marcos = 9 F. de P. 4 marcos = 10 F. de P.

Algoritmo del Reloj


Intenta buscar eficiencia ~ LRU, con menos sobrecarga Modificacin del FIFO: da una 2 oportunidad a cada pgina antes de quitarla de memoria Se utiliza un Bit de Uso (U):

0 cuando se carga la pgina por primera vez 1 cuando se referencia la pgina Si hay fallo y U=0, la pgina se reemplaza y se avanza el puntero Si U=1, se pone U=0, avanza y repite lo mismo hasta encontrar pgina con U=0.
60

Pginas en cola circular, con puntero a la ms antigua

Ms marcos ms fallos de pgina!!!


A.Ortigosa
59

A.Ortigosa

10

Algoritmo del Reloj


n-1
Pgina 9 uso = 1

Algoritmo del Reloj


n-1
Pgina 9 uso = 1

0
Pgina 19 uso = 1 Pgina 1 uso = 1

Primer marco en el buffer circular de los candidatos al reemplazo 1

0
Pgina 19 uso = 1 Pgina 1 uso = 0

. . .
8
Pgina 222 uso = 0 Pgina 33 uso = 1

. . .
8
Pgina 222 uso = 0 Pgina 33 uso = 1

Pgina 45 uso = 1

Puntero al siguiente marco

Pgina 45 uso = 0 Pgina 191 uso = 0 Pgina 727 uso = 1

Puntero al siguiente marco

Pgina 191 uso = 1 Pgina 556 uso = 0

Pgina 67 uso = 1

Pgina 13 uso = 0

Pgina 67 uso = 1

Pgina 13 uso = 0

5 6 Figura 8.16. Ejemplo de funcionamiento de la poltica del reloj.


(b) Estado del buffer justo despus del siguiente reemplazo de pgina
61

Figura 8.16. Ejemplo de funcionamiento de la poltica del reloj.


A.Ortigosa (a) Estado del buffer justo antes del reemplazo de pgina A.Ortigosa

62

Algoritmo del Reloj


Comportamiento:
2
2*

Extensin Algoritmo del Reloj (NRU)


5
3* 2 5*

3
2* 3*

2
2* 3*

1
2* 3* 1*

5
5* 3 1

2
5* 2* 1

4
5* 2* 4*

5
5* 2* 4*

3
3* 2 4

2
3* 2* 4

2
3* 2* 5*

Todos los procesadores que proveen paginacin disponen de Bit de Modificacin

F
*

Es necesario para controlar que una pgina modificada no se reemplace sin guardarla en disco

apuntador Bit de Uso = 1 Nmero de fallos de pgina: 5 (+ 3 iniciales)

Se puede aprovechar este bit para mejorar el Algoritmo del Reloj:

Algoritmo NRU (de Uso No Reciente)


64

A.Ortigosa

63

A.Ortigosa

Algoritmo NRU
Utilizando los bits de Uso (U) y Modificado (M) se definen cuatro clases de pginas:

Algoritmo NRU
1. Se recorre buffer de marcos, sin cambiar U. Se selecciona para reemplazo el primer marco encontrado de clase 0 (U=0, M=0) 2. Si falla 1, se recorre el buffer buscando marcos de clase 1 (U=0, M=1). Durante este recorrido, se pone U=0 en todos los marcos por los que se pasa. Se selecciona para reemplazo el primer marco encontrado (copiar en disco la pgina). 3. Si falla 2, se repite 1 y, si es necesario, 2 (ahora todos los marcos tienen U=0)
65

Clase 0: Pginas no referenciadas ni modificadas (U=0,M=0) Clase 1: Pginas no referenciadas, modificadas (U=0,M=1) Clase 2: Pginas referenciadas no modificadas (U=1,M=0) Clase 3: Pginas referenciadas, modificadas (U=1,M=1)

A.Ortigosa

A.Ortigosa

66

11

Algoritmo NRU
Comportamiento:
U
2
2*,

Algoritmo NRU
Reloj y NRU: Aunque haya que escribir en disco, se supone que la pgina reemplazada tardar en ser usada de nuevo (principio de cercana) Ventaja NRU sobre reloj: entre las pginas menos usadas, las no modificadas se reemplazan antes que las modificadas => ahorro de tiempo de escritura en disco
67

M
3
2*, 3*,

2*
2*,* 3*,

1
2*,* 3*, 1*,

5*
2,* 5*,* 1,

2
2*,* 5*,* 1,

4*
2*,* 5*,* 4*,*

5*
2*,* 5*,* 4*,*

3
3*, 5,* 4,*

2*
3*, 2*,* 4,*

5
3*, 2*,* 5*,

2*
3*, 2*,* 5*,

F
*

F*

F* F*

apuntador Bit de Uso (Modificado) = 1 Bit de Uso (Modificado) = 0 Nmero de fallos de pgina: 5 (+ 3 iniciales) (slo 3 exigen guardar la pgina en disco)

A.Ortigosa

A.Ortigosa

68

Almacenamiento Intermedio de pginas


Estrategia para mejorar rendimiento de paginacin y utilizar poltica de reemplazo de pginas sencilla Pgina reemplazada se asigna a una lista:

Almacenamiento Intermedio de pginas


Lista de pginas libres = lista de marcos disponibles para cargar pginas (se mantiene un mnimo) Listas ~ cach de pginas

Pginas libres, para pginas sin modificar Pginas modificadas.

No se quita de la memoria, slo de la tabla de pginas

Reduce el coste de cargar pginas que han sido reemplazadas hace poco tiempo
69

A.Ortigosa

A.Ortigosa

70

Bloqueo de Marcos
Algunos marcos de la memoria principal pueden estar bloqueados

Sw del Sistema Operativo


Polticas de lectura (previa / bajo demanda) Polticas de ubicacin (mejor/peor/primer ajuste, ...) Polticas de reemplazo (ptima, LRU, FIFO, reloj, ...) Gestin del conjunto residente (tamao, asignacin fija/variable, reemplazo local/global) Polticas de vaciado (por demanda/previo) Control de carga

Restriccin a la poltica de reemplazo La pgina de un marco bloqueado no puede ser reemplazada Utilizado para el ncleo del SO y otras reas crticas Se asocia bit de bloqueo a cada marco (en tabla de marcos o tabla de pginas actual)
71

A.Ortigosa

A.Ortigosa

72

12

Tamao del Conjunto Residente


SO debe decidir cunta memoria asignar a un proceso (n pgs. a cargar en memoria principal). Factores que influyen en la decisin:

Tamao del Conjunto Residente Polticas


Asignacin Fija: otorga a cada proceso un n fijo de pginas.

Cuanto menos memoria necesite cada proceso, mayor cantidad de procesos en memoria => mayor probabilidad de procesos listos en memoria. Si hay pocas pginas de un proceso en memoria, aumenta la probabilidad de FdP. Por encima de un determinado tamao, ms memoria no tendr un efecto notable (por principio de cercana).

Se decide en la carga inicial, segn tipo de proceso o directrices del programador o administrador. Cuando hay FdP., siempre se reemplaza una pgina del mismo proceso. Problemas:
Desperdicia espacio si el proceso no necesita todos los marcos que se le han asignado. Si el proceso necesita ms marcos de los asignados, el proceso no podr ejecutarse correctamente, aunque en el sistema haya muchos marcos vacos.

A.Ortigosa

73

A.Ortigosa

74

Tamao del Conjunto Residente Polticas


Asignacin Variable: el nmero de marcos de un proceso cambia durante su vida.

Alcance del Reemplazo


Reemplazo Local: se elige una pgina del proceso que origin el FdP.

Un proceso con alta tasa de FdP. recibe ms marcos. Un proceso con menos FdP. tendr menos marcos.

Puede utilizarse con Asignacin Fija y Variable.

La asignacin variable es ms potente pero costosa (ms trabajo del SO, que debe evaluar comportamiento de procesos dinmicamente) Este tipo de asignacin se relaciona con la Poltica de Alcance del Reemplazo:
A.Ortigosa
75

Reemplazo Global: todas las pginas de la memoria son candidatas a reemplazar.

Slo tiene sentido con Asignacin Variable.

A.Ortigosa

76

Gestin del conjunto residente


Reemplazo Reemplazo local global Asignacin fija Asignacin variable SI NO

Fija + Local
Al cargar un nuevo proceso, se le asigna un n de marcos fijo (depende de aplicacin y solicitud del programa). Desventajas:

SI

SI

Si pocas pginas, alto porcentaje de FdP Si muchas pginas, pocos programas => procesador parado o intercambiando

A.Ortigosa

77

A.Ortigosa

78

13

Variable + Global
Sencilla de implementar FdP=> nuevo marco libre para el proceso, donde se carga la pgina => incrementa su tamao Dificultad: eleccin del reemplazo (entre todas menos las bloqueadas) Ayuda: Uso de memoria intermedia
A.Ortigosa
79

Variable + Local
Al cargar nuevo proceso, se le asigna un n marcos (paginacin previa o bajo demanda) Cuando hay un FdP., se selecciona una pgina del proceso que fall De vez en cuando, se evala la asignacin de un proceso y se aumenta o disminuye para mejorar el rendimiento global. Estrategia del Conjunto de Trabajo: se utiliza para determinar el tamao del conjunto residente y el momento de los cambios
A.Ortigosa
80

Conjunto de Trabajo
Cjto. de trabajo de un proceso en un instante t, W(t, ): cjto. de pgs. a las que el proceso ha hecho referencia en las ltimas unidades de tiempo

Conjunto de Trabajo
Si n marcos disponibles < tamao del cjto. de trabajo: fallos de pg. frecuentes Peligro: hiperpaginacin proceso pasa ms tiempo intercambiando pgs. que ejecutndose, y puede robar pgs. de otros procesos, provocando su hiperpaginacin (trashing)

W crece con . W depende del instante t.: puede ser desde 1 hasta n total de pgs. del proceso Estabilidad: principio de cercana Oscilaciones: indican desplazamiento del programa a otra ubicacin
81

Su tamao puede variar durante la ejecucin


A.Ortigosa

A.Ortigosa

82

Conjunto de Trabajo
Consecuencia del trashing: reduccin drstica del uso de CPU El planificador responde incrementando el nivel de multiprogramacin => aumenta n procesos hiperpaginados Proceso se realimenta incrementalmente hasta que el sistema se desploma La hiperpaginacin se limita con asignacin local, y si se asigna a cada proceso un n de marcos suficiente.
A.Ortigosa
83

Conjunto de Trabajo
Problema: Cmo calcular n de marcos que un proceso necesita? ~ Cmo calcular tamao del conjunto de trabajo para un proceso?

A.Ortigosa

84

14

Conjunto de Trabajo
Para calcular tamao del cjto. de trabajo, se utiliza el modelo de cjto. de trabajo

Conjunto de Trabajo
Posible estrategia:
Supervisar el conjunto de trabajo de cada proceso Eliminar peridicamente del conjunto residente las pginas que no pertenezcan a su conjunto de trabajo Un proceso se puede ejecutar slo si conjunto de trabajo esta en memoria principal (en el conjunto residente)

Basado en el principio de localidad (las pgs. que se utilizan en cada momento se pueden agrupar en grupos que varan a lo largo de la ejecucin del proceso).
Ej:

Estrategia usada en muchos SSOO Problemas:


una llamada a una funcin provoca un cambio de localidad.

El pasado no siempre predice el futuro. Es impracticable una medida real del conjunto de trabajo de cada proceso El valor ptimo del a considerar es desconoc. y puede variar Algoritmo de frecuencia de fallos de pgina Poltica de cjto. de trabajo con muestreos en intervalos variables

Variaciones:

A.Ortigosa

85

A.Ortigosa

86

Sw del Sistema Operativo


Polticas de lectura (previa / bajo demanda) Polticas de ubicacin (mejor/peor/primer ajuste, ...) Polticas de reemplazo (ptima, LRU, FIFO, reloj, ...) Gestin del conjunto residente (tamao, asignacin fija/variable, reemplazo local/global) Polticas de vaciado (por demanda/previo) Control de carga
A.Ortigosa

Polticas de Vaciado
Cundo escribir en disco una pgina modificada? Vaciado por demanda:

Se escribe pgina en disco slo cuando se va a reemplazar (antes de leer la siguiente) Ventaja: Minimiza cantidad de pginas escritas en disco Desventaja: Cada FdP produce 2 transferencias de pgina => menor rendimiento Escribe las pginas modificadas antes de que se necesiten sus marcos Ventaja: Aprovecha las ventajas de escribir en el disco por lotes Desventaja: Posibles operaciones innecesarias (escritura de pginas que son modificadas despus)
88

Vaciado previo:

87

A.Ortigosa

Polticas de Vaciado
Alternativa: incorporar almacenamiento intermedio:

Gestin de memoria Sw del SO


Polticas de lectura (previa / bajo demanda) Polticas de ubicacin (mejor/peor/primer ajuste, ...) Polticas de reemplazo (ptima, LRU, FIFO, reloj, ...) Gestin del conjunto residente (tamao, asignacin fija/variable, reemplazo local/global) Polticas de vaciado (por demanda/previo) Control de carga

Pginas reemplazadas a lista de modificadas/no modificadas Lista de modificadas a disco peridicamente (y pasan a no modif.)

A.Ortigosa

89

A.Ortigosa

90

15

Control de Carga
Grado de multiprogramacin: cuntos procesos pueden estar en la memoria principal
Si hay pocos, posibilidad de que todos bloqueados Si hay muchos, aumenta frecuencia de FdP (posible hiperpaginacin) => Se debe aumentar cuando el nmero de FdP sea pequeo y disminuir cuando sea grande

A.Ortigosa
91

Control de Carga
Suspensin de procesos

Qu proceso(s) debe(n) suspenderse para disminuir el grado de multiprogramacin?:


Baja prioridad Muchos FdP ltimo activado Conjunto residente ms pequeo Proceso mayor Mayor ventana de ejecucin restante

La eleccin depende (objetivos, tipo de programa)

A.Ortigosa

92

16

También podría gustarte