You are on page 1of 29

Memoria Virtual

Mdulo 9
Departamento de Ciencias e Ingeniera de la Computacin
Universidad Nacional del Sur

Mdulo 9: Memoria Virtual


Base
Demanda de Pginas
Reemplazo de Pginas

Alocacin de Cuadros
Thrashing
Alocacin de la Memoria en el Kernel
Otras Consideraciones
Ejemplos

JRA 2009

Sistemas Operativos Memoria Virtual

Objetivos
Describir los beneficios de l sistema de memoria virtual
Explicar los conceptos de paginado por demanda,
algoritmos de reemplazo de pginas y alocacin de
cuadros de pginas
Discutir el principio del modelo de working-set

JRA 2009

Sistemas Operativos Memoria Virtual

Base
Memoria Virtual separacin de la memoria lgica del
usuario de la memoria fsica.
Solo parte del programa necesita estar en memoria
para su ejecucin.
El espacio de direcciones lgicas puede ser ms
grande que el espacio de direcciones fsicas.

Permite a varios procesos compartir el espacio de


direcciones.
La creacin de procesos sea ms eficiente
La memoria virtual puede ser implementada va:
Paginado por demanda
Segmentacin por demanda
JRA 2009

Sistemas Operativos Memoria Virtual

Memoria Virtual mas Grande que la


Memoria Fsica

JRA 2009

Sistemas Operativos Memoria Virtual

Espacio de Direcciones Virtuales

JRA 2009

Sistemas Operativos Memoria Virtual

Librera Compartida usando Memoria Virtual

Sistemas Operativos Memoria Virtual

JRA 2009

Paginado por Demanda


Traiga una pgina a la solo cuando es necesario.
Son necesarias menos E/S
Es necesario menos memoria
Respuesta ms rpida
Ms usuarios

Cuando una pgina se necesita se la referencia


referencia invlida aborto
no est en memoria se la trae a memoria
Intercambiador perezoso nunca intercambia en
memoria hasta que la pgina se necesite.
El intercambiador (swapper) que trata con pginas es
un paginador (pager)
JRA 2009

Sistemas Operativos Memoria Virtual

Transferir de Memoria Paginada a Espacio de Disco


Contiguo

JRA 2009

Sistemas Operativos Memoria Virtual

Bit Vlido-Invlido
Se asocia a cada entrada a la tabla de pginas un bit vlido
invlido
(1 en memoria, 0 no en memoria)
Inicialmente el bit vlidoinvlido es puesto a 0 en todas las
entradas.
cuadro #
bit vlido-invlido
1
1
1
1
0

0
0
tabla de pginas
Durante la traduccin de la direccin, si el bit vlidoinvlido en la
entrada de la tabla de pginas es 0 falta de pgina.
JRA 2009

Sistemas Operativos Memoria Virtual

Tabla de Pginas cuando algunas Paginas no estn en


Memoria Principal

JRA 2009

Sistemas Operativos Memoria Virtual

Falta de Pgina
Si hay una referencia a una pgina, la primer
referencia hace un trap al SO falta de pgina
El SO mira la tabla para decidir:
Referencia Invlida aborto.
No est en memoria.
Toma un cuadro libre.
Lleva la pgina al cuadro.
Reestablece las tablas, bit de validacin = 1.
Reinicio de la instruccin:

Movimiento de bloque
locacin con auto incremento/decremento
JRA 2009

Sistemas Operativos Memoria Virtual

Pasos en el Manejo de una Falta de Pgina

JRA 2009

Sistemas Operativos Memoria Virtual

Performance del Paginado por Demanda


Ritmo de falta de pginas 0 p 1.0
si p = 0 no hay falta de pginas
si p = 1, cada referencia es una falta de pgina

Tiempo Efectivo de Acceso (TEA)


TEA = (1 p) x acceso a memoria
+ p x (sobrecarga de falta de pgina
+ salida de la pgina
+ entrada de la pgina
+ sobrecarga de reinicio)

JRA 2009

Sistemas Operativos Memoria Virtual

Ejemplo de Paginado por Demanda


Tiempo de acceso a memoria = 200 nanosegundos

Tiempo promedio de servicio de una falta de pgina =


8 milisegundos.
TEA = (1 p) x 200 + p x (8 milisegundos)
= (1 p) x 200 + p x 8000000
= 200 + p x 7999800
Si uno de 1000 causa una falta de pgina, entonces
TEA = 8.2 microseconds.
Esto significa una reduccin de 40!!

JRA 2009

Sistemas Operativos Memoria Virtual

Creacin de Procesos
La memoria virtual permite otros beneficios durante la
cracin de procesos:
Copy-on-Write
Archivos mapeados en memoria

JRA 2009

Sistemas Operativos Memoria Virtual

Qu ocurre cuando no hay cuadros libres?


Reemplazo de pginas se busca alguna pgina en
memoria que no est en uso y se la intercambia.
algoritmo
performance se requiere un algoritmo que
resulte en un mnimo nmero de falta de pginas.
Algunas pginas pueden ser quitadas o volcadas en
memoria varias veces.

JRA 2009

Sistemas Operativos Memoria Virtual

Reemplazo de Pginas
Se previene sobrealocacin de memoria por modificacin de la rutina de servicio de falta de pginas para
incluir el reemplazo de pginas.
Uso del bit de modificado (sucio) para reducir la
sobrecarga de la transferencia de pginas solo las
pginas modificadas son escritas en disco.
El reemplazo de pginas completa la separacin entre
memoria lgica y memoria fsica puede ser provista
una gran memoria lgica en una pequea memoria
fsica.

JRA 2009

Sistemas Operativos Memoria Virtual

Necesidad del Reemplazo de Pgina

JRA 2009

Sistemas Operativos Memoria Virtual

Reemplazo de Pgina
1. Encontrar la locacin de la pgina deseada en el
disco
2. Encontrar un cuadro libre:
- Si hay un cuadro libre, usarlo
- Si no hay cuadro libre usar un algoritmo de
reemplazo de pgina para seleccionar el cuadro
vctima.

3. Traer la pgina deseada al cuadro libre, modificar la


tabla de pginas y la tabla de cuadros.
4. Reiniciar el proceso

JRA 2009

Sistemas Operativos Memoria Virtual

10

Reemplazo de Pgina

JRA 2009

Sistemas Operativos Memoria Virtual

Algoritmos de Reemplazo de Pginas


Procuran un ritmo de falta de pginas bajo.
Se evalua el algoritmo ensayndolo sobre una
secuencia particular de referencias a memoria
(secuencia de referencia) y computando el nmero
falta de pginas en la secuencia.
En el ejemplo, la secuencia es
1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5.

JRA 2009

Sistemas Operativos Memoria Virtual

11

Nmero de falta de pginas

Graph of Page Faults Versus The Number of Frames

Nmero de cuadros
Sistemas Operativos Memoria Virtual

JRA 2009

Algoritmo First-In-First-Out (FIFO)


Secuencia de referencia: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
3 cuadros (hay 3 pginas en memoria al mismo tiempo por

proceso)
1

4 4 4 5 5 5 5 5 5

2 1 1 1 1 1 3 3 3

3 3 2 2 2 2 2 4 4

1 1 5 5 5 5 4 4

2 2 2 1 1 1 1 5

3 3 3 3 2 2 2 2

4 4 4 4 4 3 3 3

4 cuadros

9 faltas de pginas

10 faltas de pginas

Reemplazo FIFO Anomala de Belady

JRA 2009

mas cuadros menos faltas de pginas


Sistemas Operativos Memoria Virtual

12

Nmero de falta de pginas

Anomala de Belady

Nmero de cuadros

Sistemas Operativos Memoria Virtual

JRA 2009

Reemplazo de Pginas FIFO

Secuencia de referencia

Cuadros de pginas

JRA 2009

Sistemas Operativos Memoria Virtual

13

Algoritmo ptimo
Reemplace la pgina que no ser usada por un perodo

largo de tiempo.
Ejemplo con 4 cuadros
1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
1

1 1 1 1 1 1 4 4

2 2 2 2 2 2 2 2

3 3 3 3 3 3 3 3

4 4 5 5 5 5 5 5

6 faltas de pginas

Cmo se conoce esto?


Usado para medir como se comporta un algoritmo.
Sistemas Operativos Memoria Virtual

JRA 2009

Reemplazo de Pginas ptimo

Secuencia de referencia

Cuadros de pginas

JRA 2009

Sistemas Operativos Memoria Virtual

14

Algoritmo Menos Recientemente Usado(LRU)


Secuencia de referencia: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
1

1 1 1 1 1 1 1 5

2 2 2 2 2 2 2 2

3 3 5 5 5 5 4 3

4 4 4 4 4 3 3 4

8 faltas de pginas

Implementacin del contador

Cada entrada a la tabla de pginas tiene un


contador; cada vez que la pgina es referenciada se
copia el reloj en el contador.
Cuando la pgina necesita ser cambiada, mira los
contadores para determinar cuales hay que
cambiar.
Sistemas Operativos Memoria Virtual

JRA 2009

Reemplazo de Pginas en LRU


Secuencia de referencia

Cuadros de pginas

JRA 2009

Sistemas Operativos Memoria Virtual

15

Algoritmo LRU (Cont.)


Implementation por Stack mantiene un stack de

nmeros de pginas en forma de una lista doblemente


enlazada:

Pgina referenciada:
se

mueve al tope

Requiere

cambios de punteros

No se necesita buscar para realizar el reemplazo

Sistemas Operativos Memoria Virtual

JRA 2009

Uso del Stack para registrar las Referencias a


Pginas Ms Recientes

Secuencia de referencia

stack
antes de a

JRA 2009

stack
despus de b

Sistemas Operativos Memoria Virtual

16

Algoritmos de Aproximacin a LRU


Bit de referencia. Con cada pgina se asocia un bit, inicialmente=

0
Cuando la pgina es referenciada el bit es puesto a 1.
Reemplace aquella en la cual es 0 (si existe). No se conoce el
orden.
Segunda oportunidad
Necesita el bit de referencia.
Reemplazo circular (Clock).
Si la pgina a ser reemplazada (en orden circular) tiene el bit
de referencia = 1 entonces:
Se pone el bit de referencia en 0.
Se deja la pgina en memoria.
Se reemplaza la siguiente pgina (en el orden circular),
sujeta a las mismas reglas.

Sistemas Operativos Memoria Virtual

JRA 2009

Algoritmo de Reemplazo de Pginas Segunda


Oportunidad (Reloj)
bits de
referencia

pginas

bits de
referencia

pginas

prxima
victima

cola circular de pginas

JRA 2009

cola circular de pginas

Sistemas Operativos Memoria Virtual

17

Algoritmos de Cuenta
Se mantiene un contador del nmero de referencias
que han sido hechas a la misma pgina.
Algoritmo LFU : reemplaza la pgina con la menor
cuenta.
Algoritmo MFU : basado en el argumento que la
pgina con la cuenta mas chica fue recien puesta y
todava tiene que ser usada.

Sistemas Operativos Memoria Virtual

JRA 2009

Alocacin de Cuadros
Cada proceso necesita un nmero mnimo de pginas.
Ejemplo: IBM 370 6 pginas para manejar la

instruccin SS MOVE :

la instruccin es de 6 bytes, puede expandirse a 2


pginas.

2 pginas para manejar desde.

2 pginas para manejar hacia.

Dos esquemas de alocacin.

JRA 2009

alocacin fija

alocacin con prioridad

Sistemas Operativos Memoria Virtual

18

Alocacin Fija
Alocacin igualitaria p.e., si hay 100 cuadros y 5

procesos, a cada uno se les da 20 pginas.


Alocacin Proporcional Aloca de acuerdo al tamao

del proceso.
m = 64

si = tamao del proceso pi

S = si

si =10
s2 =127

m = nmero total cuadros


ai = alocacin para pi =

si
m
S

10
64 5
137
127
a2 =
64 59
137
a1 =

Sistemas Operativos Memoria Virtual

JRA 2009

Alocacin con Prioridad


Se usa un esquema de alocacin proporcional usando

prioridades antes que tamao.


Si el proceso Pi genera una falta de pgina,

JRA 2009

Se selecciona para reemplazar uno de sus cuadros.

Se selecciona para reemplazar un cuadro de un


proceso con menor nmero de prioridad.

Sistemas Operativos Memoria Virtual

19

Reemplazo Global vs. Local


Reemplazo global el proceso selecciona un cuadro de

reemplazo de todos los cuadros; un proceso puede


tomar los cuadros de otro.
Reemplazo local cada proceso selecciona de su

propio conjunto el cuadro a reemplazar.

Sistemas Operativos Memoria Virtual

JRA 2009

Thrashing
Si un proceso no tiene suficientes pginas, el ritmo de

falta de pginas es muy alto. Esto lleva a:

baja utilizacin de CPU.

el SO piensa que es necesario incrementar el grado


de multiprogramacin.

otro proceso se agrega al sistema.

Thrashing un proceso est ocupado haciendo

solamente intercambio de pginas.

JRA 2009

Sistemas Operativos Memoria Virtual

20

Utilizacin de CPU

Diagrama de Thrashing

Grado de multiprogramacin

Sistemas Operativos Memoria Virtual

JRA 2009

Thrashing
Por qu trabaja el paginado?

Modelo de Localidad

El proceso migra desde una localidad a otra.

Las localidades se pueden solapar.

Por qu ocurre el thrashing ?

tamao de la localidad > tamao total de memoria

JRA 2009

Sistemas Operativos Memoria Virtual

21

Modelo de Conjunto de Trabajo (Working-Set)


ventana working-set un nmero fijo de referencias de
pginas
Ejemplo: 10,000 instrucciones
WSSi (working set del proceso Pi) =
nmero total de pginas referenciadas en el mas reciente
(vara en el tiempo)
si es demasiado chico no acompaa la localidad.
si es demasiado grande acompaa varias localidades.
si = acompaar al programa entero.
D = WSSi demanda total de cuadros

si D > m Thrashing

m=# de cuadros de memoria

Poltica: si D > m, entonces suspende uno de los procesos.

JRA 2009

Sistemas Operativos Memoria Virtual

Modelo de Working-set

Tabla de pginas referenciadas

JRA 2009

Sistemas Operativos Memoria Virtual

22

Control del Working Set


Aproximar con un intervalo de tiempo + bit de

referencia
Ejemplo: = 10,000
Las interrupciones del Timer se producen cada
5000 unidades de tiempo.
Se mantienen en memoria 2 bits por cada pgina.

Siempre que el timer interrumpe copia e inicializa


los valores de todos los bits de referencia a 0.
Si uno de los bits en memoria = 1 pgina en el
working set.

Por qu no es completamente preciso?


Mejora = 10 bits e interrupcin cada 1000 unidades de

tiempo.
Sistemas Operativos Memoria Virtual

JRA 2009

Ritmo de falta de pginas

Esquema de Frecuencia de Falta de Pgina


Incremente el nmero
de cuadros

Lmite
superior

Lmite inferior
Decremente el nmero de
cuadros
Nmero de cuadros

La idea es establecer un ritmo aceptable de falta de


pginas.
Si el ritmo actual es demasiado bajo, los procesos pierden
cuadros.
Si el ritmo actual es demasiado alto, el proceso gana
cuadros.
JRA 2009

Sistemas Operativos Memoria Virtual

23

Alocacin de la Memoria en el Kernel


Tratado en forma diferenciada respecto a la memoria de

usuario
Frecuentemente alocada desde un pool de memoria

libre
El Kernel requiere memoria para estructuras de

determinados tamaos

En algunos kernel la memoria necesita ser contigua

Sistemas Operativos Memoria Virtual

JRA 2009

Otras Consideraciones - Prepaginado


Prepaginado

Para reducir el gran nmero de falta de pginas que


ocurren en el inicio del proceso

Se necesitar prepaginar todas o algunas pginas del


proceso antes de ser referenciadas

Pero si las pginas prepaginadas no son usadas se


incurri en gasto de E/S y memoria

Suponga que s pginas son prepaginadas y de


esas pginas son usadas
el costo de salvar s* faltas > < qu el costo
de prepaginar s* (1- ) paginas inecesarias?

Es

JRA 2009

cercano a cero prepaginado pierde


Sistemas Operativos Memoria Virtual

24

Otras Consideraciones Tamao de Pgina


Seleccin del tamao de pgina

fragmentacin

tamao de tabla

sobrecarga de E/S

localidad

Sistemas Operativos Memoria Virtual

JRA 2009

Otras Consideraciones Alcance del TLB


Alcance del TLB - La cantidad de memoria accesible desde

TLB
Alcance del TLB = (entradas al TLB ) X (tamao de pgina)
Idealmente, el working set de cada proceso es almacenado

en el TLB

De otra forma habra un alto nmero de falta de pginas

Incremente el tamao de pgina

Puede llevar a un incremento en la fragmentacin dado


que no todas las aplicaiones requieren tamao de
pgina grande

Proveer varios tamaos de pginas

JRA 2009

Permite acomodar mejor las aplicaciones y reducir la


fragmentacin
Sistemas Operativos Memoria Virtual

25

Otras Consideraciones Estructura del Programa


Estructura de programa

Arreglo de enteros A[1024, 1024]


Cada fila est almacenada en una pgina
Un cuadro
Programa 1
for j := 1 to 1024 do
for i := 1 to 1024 do
A[i,j] := 0;
1024 x 1024 faltas de pginas
Programa 2
for i := 1 to 1024 do
for j := 1 to 1024 do
A[i,j] := 0;
1024 faltas de pginas
Fijacin para E/S y direccionamiento
JRA 2009

Sistemas Operativos Memoria Virtual

Otras Consideraciones Fijacin de E/S


Fijacin de E/S Algunas veces las pginas

deben ser fijadas en la memoria


Considere E/S Las pginas que son usadas

para copiar un archivo desde un dispositivo deben


ser fijadas para no ser seleccionadas por el
algoritmo de reemplazo de pginas

JRA 2009

Sistemas Operativos Memoria Virtual

26

Razn por la cual los Cuadros Usados para E/S deben


estar en Memoria

Sistemas Operativos Memoria Virtual

JRA 2009

Ejemplos de Sistemas Operativos


Windows XP
Solaris

JRA 2009

Sistemas Operativos Memoria Virtual

27

Windows XP
Usa demanda de pginas con clustering. Es decir trae las

pginas que rodean a la pgina demandada.


A los procesos se les asigna un working set mnimo y un

working set mximo.


El working set mnimo es el mnimo nmero de pginas que

requiere tener el proceso en memoria.


A un proceso se le puede asignar tantas pginas como indica

su working set mximo.


Cuando la cantidad de memoria libre en el sistema cae bajo

determinado umbral, se activa en forma automtica hasta


restaurar la cantidad de memoria libre.
Este ajuste automtico remueve pginas de los procesos que

estn excedidos de su working set mnimo


Sistemas Operativos Memoria Virtual

JRA 2009

Solaris
Mantiene una lista de pginas libres para asignar a procesos en

falta
Lotsfree parmetro umbral (cantidad de memoria libre) para

comenzar a paginar
Desfree parmetro umbral para incrementar el paginado
Minfree parmetro umbral para ser intercambiadas las

pginas
El paginado es realizado por un proceso pageout
Pageout barre las pginas usando un algoritmo de reloj

modificado
Scanrate es la frecuencia con que las paginas son barridas.

Estos rangos varan entre slowscan y fastscan


La frecuencia de llamado a pageout depende de la cantidad de

memoria libre disponible.


JRA 2009

Sistemas Operativos Memoria Virtual

28

Barrido de pginas en Solaris

cantidad de memoria libre

JRA 2009

Sistemas Operativos Memoria Virtual

Fin
Mdulo 9
Departamento de Ciencias e Ingeniera de la Computacin
Universidad Nacional del Sur

29

You might also like