Vous êtes sur la page 1sur 32

Memoria Virtual

Msc. Rina Arauz

Introduccin

Problema: ejecutar programas de tamao mayor que la memoria disponible Soluciones Memoria virtual: Control realizado por el S.O. La memoria virtual (MV) se basa en el principio de localidad de las referencias. La idea es mantener en memoria principal slo la informacin que se necesite en cada momento Acta como una cach de objetos

Gestin de memoria 2

Memoria virtual: ventajas

Permite aumentar el tamao de los programas permitiendo que sean mayores que la memoria fsica Permite aumentar el grado de multiprogramacin, ya que permite ubicar ms procesos en memoria Proporciona transparencia cara al usuario Reduce la E/S, ya que evita cargar partes de un programa que raramente se utilizan

Gestin de memoria 3

Implementacin

La memoria virtual puede basarse tanto en mecanismos de paginacin como de segmentacin Lo habitual es que se base en un esquema paginado por las siguientes razones: Al trabajar con bloques de tamao fijo, las transferencias desde y hacia el disco son ms simples Las polticas de ubicacin son ms simples: todos los bloques son iguales

Gestin de memoria 4

Soporte hardware

Requerimientos hardware: Tabla de pginas Bits en los descriptores de pgina:


Bit de validez Bit de referencia Bit de modificacin

Interruptibilidad de las instrucciones Dispositivo de almacenamiento secundario

Gestin de memoria 5

Memoria virtual basada en paginacin


Memoria principal
(P3)
IN OUT OUT IN IN OUT

y x z

(P0) (P4)

Memoria secundaria (P0) (P1)


(P2) (P3) (P4) (P5)

Tabla del mapa de pginas

Tabla del mapa de archivos


Gestin de memoria 6

Carga dinmica
S. O.
Programa Referencia 1 LOAD M 6 Reiniciar la instr. 5
0

La pgina est en memoria auxiliar

2 Excepcin

Memoria secundaria

Memoria principal Tabla de pginas


Marco libre Actualizar la tabla de pginas

4 Cargar la pgina que falla


Gestin de memoria 7

Paginadores

Son la parte del SO responsable de mover pginas entre la MP y el disco y viceversa Pueden ser de tres tipos: De archivos (mmap, exec) De objetos annimos (swap) De dispositivos (frame buffer)

Gestin de memoria 8

Tasa de fallos de pgina

Es la probabilidad de que se produzca un fallo de pgina p = nmero de fallos / nmero total de referencias: 0 p 1
Tasa de fallos de pgina
La tasa de fallos de pgina disminuye cuando aumenta el nmero de marcos

Nmero de marcos

Gestin de memoria 9

Tiempo de servicio del fallo de pgina

Los tiempos que ms afectan son: Los cambios de contexto Salvar una pgina modificada a disco (page out) Cargar la pgina referencia de disco a memoria (page in) El planificador asigna la CPU a otros procesos mientras se realizan las lecturas (page in) y escrituras asociadas al fallo de pgina

Gestin de memoria 10

Rendimiento de la paginacin

Tiempo de acceso efectivo (TAE): TAE = (1 - p) * TAM + p * (1 + pm) * TTP donde: TAM: tiempo de acceso a memoria TTP: tiempo de transferencia pgina/disco p: tasa de fallos de pgina pm: probabilidad de que la pgina a reemplazar haya sido modificada

Gestin de memoria 11

Hiperpaginacin (Thrashing)
Thrashing Utilizacin de la CPU

Grado de multiprogramacin

Hiperpaginacin: Un proceso genera fallos de pgina frecuentemente y el sistema pasa la mayor parte del tiempo paginando

Gestin de memoria 12

Hiperpaginacin (Thrashing)

Posible causa de la hiperpaginacin: Un proceso necesita ms marcos, su tasa de fallos de pgina aumenta y se produce la siguiente reaccin en cadena: Disminuye el uso de la CPU El S.O. decide aumentar el grado de multiprogramacin La tasa de fallos de pgina se incrementa ms Soluciones: Reducir la multiprogramacin o emplear un algoritmo de reemplazo local o por prioridades Prevenir la hiperpaginacin
Gestin de memoria 13

Algoritmos

Poltica de asignacin: Qu cantidad de memoria real se asigna a un proceso activo? Poltica de ubicacin: Dnde puede ubicarse un bloque en memoria principal? Poltica de bsqueda: Cundo y qu bloques traer del almacenamiento secundario a MP? Paginacin anticipada Paginacin por demanda Poltica de reemplazo: Qu bloque debera sustituirse al traer a memoria principal un nuevo bloque si no hay memoria libre?
Gestin de memoria 14

Polticas de asignacin

El mnimo nmero de marcos que debe asignarse a un proceso est definido por la arquitectura mbito del reemplazo de pginas
Ventajas
Reemplazo local Reemplazo global

Las pginas de un proceso en memoria dependen slo de su comportamiento


Mejor aprovechamiento de la memoria

Tipos de algoritmos de asignacin: Asignacin equitativa Asignacin proporcional Asignacin prioritaria


Gestin de memoria 15

Polticas de ubicacin

Mtodos utilizados para contabilizar la memoria utilizada y libre: Mapa de bits Listas Polticas de ubicacin: First fit: el primero que sirva En paginacin:
Indiferente

Next fit: el siguiente que sirva Best fit: el que mejor se adapte

En segmentacin

Worst fit: el que peor se adapte


Sistema Buddy

Gestin de memoria 16

Sistema Buddy
Bloques libres
Inicial P1 pide 70 P2 pide 35 P3 pide 80

1024 Kb P1 128 256 256 P3 P3 P3 P3 P3 128 128 128 128 128 1024 Kb 512

1 3 3 3 4 3 4 3 1
Gestin de memoria 17

P1
P1 128 128 128

P2 64 P2 64
P2 64 P2 P4 64 P4 256

512
512 512 512 512 512

Devuelve P1
P4 pide 60 Devuelve P2 Devuelve P4 Devuelve P3

Paginacin por demanda

El camino que toma un programa cuando se est ejecutando no es predecible Se cargan las pginas a medida que se necesitan Ventajas: Las pginas tradas son las que realmente se necesitan La sobrecarga que implica la decisin de qu pginas traer al almacenamiento principal es mnima

Gestin de memoria 18

Paginacin anticipada (prepaginacin)

Trata de evitar los retardos por fallos de pgina Se cargan un cierto nmero de pginas en base a una prediccin Ventajas: Si la prediccin es buena, el tiempo de ejecucin de los procesos se reduce considerablemente Con la reduccin de costes del hardware, las consecuencias de una mala prediccin son menos graves

Gestin de memoria 19

Reemplazo de pginas

Es necesario cuando se produce un fallo de pgina y est toda la memoria llena Tasa de fallos uno por cada 106 2 x 107 accesos Si hay un fallo de pgina (miss) hay que: Encontrar la pgina demandada en memoria auxiliar Encontrar un marco libre o liberarlo usando un algoritmo de reemplazo de pginas Cargar la pgina en memoria principal (page in) Transferir el control al proceso de usuario
Gestin de memoria 20

Algoritmos de reemplazo de pginas

Se pretende utilizar el algoritmo que seleccione pginas que causen la frecuencia de fallos ms baja Criterios para valorar la calidad de los algoritmos de sustitucin: Baja sobrecarga Sin ajustes (No tuning) Aproximacin al LRU (menos usada recientemente)

Gestin de memoria 21

Cadenas de referencia

Para evaluar la calidad de los algoritmos de sustitucin se consideran: Cadenas de referencia: listas de referencias a pginas Nmero de marcos de pgina de que se dispone Obtencin de las cadenas de referencia: Artificialmente, de forma pseudoaleatoria Grabando una traza de ejecucin

Gestin de memoria 22

Cadenas de referencia

Ejemplo: 0100, 0432, 0101, 0612, 0102, 0103, 0104, 0101, 0611, 0102, 0103, 0104 0101, 0610, 0102, 0103, 0104, 0101, 0609, 0102, 0105 Con pginas de 100h palabras Cadena de referencias:

slo nos interesa el nmero de pgina si se referencia una pgina p, las referencias inmediatamente sucesivas a esa pgina nunca causarn fallo de pgina

1, 4, 1, 6, 1, 6, 1, 6, 1, 6, 1

Con tres marcos habr 3 fallos y con 1 marco 11 fallos

si el nmero de marcos aumenta, en general, el nmero de fallos de pgina disminuye


Gestin de memoria 23

Algoritmos de reemplazo de pginas

Existen diferentes algoritmos, entre ellos: Algoritmo ptimo Algoritmo FIFO Algoritmo LRU Algoritmos de aproximacin al LRU

Gestin de memoria 24

Algoritmo ptimo

Se reemplaza la pgina que va a tardar ms tiempo en ser usada La tasa de fallos es la ms baja posible Algoritmo imposible de realizar Criterio comparativo

Gestin de memoria 25

Algoritmo ptimo

Ejemplo:
7
7

Cadena de referencia
2
7 2 0 1 7

0
7 0

1
7 0 1

0
2 0 1

2
2 0 3

1
2 0 3 1 3

2
2 0 1

0
2 0 1

2 2 2 2 2 2 2 0 0 0 4 4 4 4 0 0 Marcos de pgina 3 3 3 3 3 3 3 1 1 0 4

8 fallos de pgina

Gestin de memoria 26

Algoritmo FIFO

Sustituye la pgina que lleva ms tiempo en memoria Ejemplo: Cadena de referencia


7
7

0
7 0

1
7 0 1

2
7 2 0 1 7

0
2 0 1

2
0 2 3

1
0 2 1 3 2

2
0 1 2 3 3

0
0 1
2

0 0 2 2 4 2 4 4 4 2 2 2 2 0 3 3 3 3 Marcos de pgina 0 0 0 0 1 1 3 3 3

12 fallos de pgina
Gestin de memoria 27

Algoritmo FIFO

Algoritmo sencillo de entender e implementar Inconvenientes: Rendimiento del algoritmo pobre. Pginas frecuentemente usadas pueden ser sustituidas Se puede producir la Anomala de Belady: aumento del nmero de fallos de pgina al aumentar el nmero de marcos

Gestin de memoria 28

Anomala de Belady

Ejemplo:
1 2 2 3 2 3

Con 3 y 4 marcos de pgina


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

11 2 1 3 1 4 4 1 1 4 2 4 5 1 5 1 5 2 5 3 5 4 55 5
1 4 2 3 1 Con 3 marcos, 9 fallos de pgina
1 1 2 1 2 3 5 4 5 1 5 5 1 2 1 1 1 3 2 2 3 2 3 3 2 2 4 4 4 4 3 4 1 4 1 2 de3 Con 3 marcos, 9 fallos pgna Con 4 marcos, 10 fallos de pgina 4 1 2 3 4 1 4 1 1 2 2 3 4 3 4 1 1 2 3 4 2 2

5 4 3 1 4 2 3 2 5

5 4 3 5 4 2 3 1

Gestin de memoria 29

Algoritmo LRU (Least Recently Used)

Algoritmo de aproximacin al reemplazo ptimo Basado en utilizar el pasado reciente como una prediccin del futuro ms prximo Sustituye la pgina menos usada en el pasado inmediato Carece de la anomala de Belady La implementacin requiere de hardware adicional: Campo en las entradas de la tabla de pginas Pila de las pginas en memoria

Gestin de memoria 30

Algoritmo LRU (Least Recently Used)

Podra comportarse errneamente el algoritmo con un bucle que ocupa varias pginas? Cadena de referencia Ejemplo:
7
7

0
7 0

1
7 0 1

2
7 2 0 1
7

0
2 0 1

2
0 3 2

1
1 0 3 2 0

2
1 3 2

0
1 3 0 2
3

4 0 2 2 4 2 4 4 0 0 0 0 0 3 0 3 3 Marcos de pgina 3 2 2 2 2 1 3 3 3 1 2 3 0 4

11 fallos de pgina
Gestin de memoria 31

Algoritmos de aproximacin al LRU

Existen diferentes algoritmos, entre ellos: Algoritmo del reloj global Algoritmo FIFO con segunda oportunidad Algoritmo NFU

Gestin de memoria 32