Está en la página 1de 49

Memoria virtual

Tabla de contenidos (T11)

Introduccin a la M.V.

Cuestiones relacionadas con la M.V.

Implementacin hardware
Estado de un proceso en memoria
Carga dinmica
Paginadores

Hiperpaginacin

Ventajas

Modelo del conjunto de trabajo de un proceso


Frecuencia de fallos de pgina

Mecanismos de asignacin y liberacin de MP


Algoritmos de gestin de la memoria virtual
Polticas de asignacin
Polticas de ubicacin

Memoria virtual

Tabla de contenidos (ii)

Polticas de bsqueda
Polticas de reemplazo de pginas

Cadenas de referencia
Algoritmo ptimo
Algoritmo FIFO
Anomala de Belady
Algoritmo LRU (Least Recently Used)
Algoritmos de aproximacin al LRU
Algoritmo del reloj global
Algoritmo FIFO con segunda oportunidad
Algoritmo NFU (Not Frequently Used)

Caso de estudio:

Mach 3.0
Linux
W2k

Memoria virtual

Introduccin a la M.V. (i)

Concepto: 1961 Fotheringham

Permite la ejecucin de procesos:

Cargados parcialmente en memoria principal


y mayores que la memoria principal disponible

Se basa en el principio de localidad de las


referencias
Slo se mantiene en memoria principal, la
informacin que se necesite en cada momento
El control lo realiza el S.O.

Memoria virtual

Introduccin a la M.V. (ii)


Ventajas

Transparencia en las transferencias:


dispositivo de almacenamiento memoria principal
Los procesos pueden tener un gran tamao,
limitado por tamao del espacio de
direccionamiento virtual o el tamao del disco duro
Aumenta el grado de multiprogramacin,
se pueden ubicar ms procesos en memoria
aumento del rendimiento del sistema
Reduce la E/S,
no se carga todo el programa en memoria principal

Memoria virtual

Cuestiones relacionadas con la M.V. (i)

Cmo se detecta si la informacin referenciada se


encuentra o no en MP?

Si la informacin no est en MP cmo se localiza


en el disco?

Tabla de mapa de archivos

Si toda la MP est ocupada dnde se ubica el


nuevo bloque de informacin?

Bit de presencia en la TDP

Usando un algoritmo de reemplazo cercano al LRU

La estrategia de asignacin de zonas de memoria


debe ser local o global?

UNIX: Global
Linux: Local
Memoria virtual

Cuestiones relacionadas con la M.V. (ii)


Implementacin hardware

Se usan mecanismos de paginacin y segmentacin


Un esquema paginado presenta ventajas:

Transferencias disco MP ms simples, se trabaja con


bloques de tamao fijo
Polticas de ubicacin ms simples, bloques iguales

Requerimientos hardware:

Gestin de tabla de pginas (TLBs, RPBTP, RLTP)


Gestin de bits en los descriptores de pgina:

Bit de presencia
Bit de referencia
Bit de modificacin (dirty bit)

Soporte para interrumpir instrucciones


Almacenamiento secundario para pginas de un
proceso

Memoria virtual

Cuestiones relacionadas con la M.V. (iii)


Estado de un proceso en memoria
Espacio de
direccionamiento virtual

A
B
C
D
E
F
G
H
I
J
K
L
M

Espacio de
direccionamiento real

TDP
p
p
p
p
-

2
0

Tabla mapa
de archivos
15001
15002
15003
15004
27350
27351
27352
27353
-

H
E
A
L

Memoria virtual

Cuestiones relacionadas con la M.V. (iv)


Carga dinmica

S. O.
Programa Referencia
1
LOAD M
6
Reiniciar la
instruccin

pm

La pgina est
en memoria auxiliar

2
Excepcin

Memoria
secundaria

00

Memoria
principal
Tabla de
pginas
4

5
Actualizar la
tabla de pginas

Marco libre

Cargar la
pgina que
falla

Memoria virtual

Cuestiones relacionadas con la M.V. (v)


Carga dinmica

Fallo de pgina: la pgina referenciada no est en MP


Tasa de fallos de pgina
La tasa de fallos de pgina
disminuye cuando aumenta
el nmero de marcos
Nmero de marcos

Los tiempos que ms afectan a la carga dinmica


son:

Los cambios de contexto


Salvar una pgina modificada a disco (page out)
Cargar la pgina referenciada en MP (page in)

Encontrar un marco libre o liberarlo


Cargar la pgina de disco a MP

El proceso pasa al estado de bloqueado mientras se


actualiza la informacin de disco y MPMemoria
va DMA
10
virtual

Cuestiones relacionadas con la M.V. (v)


Paginadores

Parte del SO que mueve pginas: disco MP


Proporciona las rutinas para hacer las
transferencias cuando se produce un fallo
Se crean y se destruyen con el objeto proyectado
en MV
Tipos de paginadores:
(dependiendo de los objetos proyectados en MP)
De archivos (p. ej.: mmap, exec)
De objetos annimos o swap pager (gestin del area
de swap)

Objetos que no tienen una imagen en el sistema de


archivos

De dispositivos (p. ej.: gestin del frame buffer)


Memoria virtual

11

Hiperpaginacin (i) (Thrashing)

Hiperpaginacin:

Los procesos roban los marcos de pgina unos a


otros y el sistema intercambia constamentente
informacin disco MP
Hiperpaginacin

Rendimiento
del sistema

Grado de
multiprogramacin

Soluciones:

Reducir la multiprogramacin
Algoritmo de reemplazo local o por prioridades
Asignar a cada proceso los marcos que necesite

Modelo del cjto. de trabajo


Estrategia de la frecuencia de fallos deMemoria
pginavirtual

12

Hiperpaginacin (ii)

Modelo del conjunto de trabajo de un proceso

Conjunto de pginas que deben estar en


almacenamiento primario para la ejecucin eficaz
de un proceso
Se basa en la localidad de referencias
Mantiene alto el grado de multiprogramacin
Formado por las pginas recientemente accedidas
durante una ventana de tiempo (W)
N de pginas en
el cjto. de trabajo

Tiempo
Memoria virtual

13

Hiperpaginacin (iii)

Frecuencia de fallos de pgina

Se establece un lmite superior e inferior para la


PFF

Frecuenci
a
de fallos
de pgina

Incrementar el
lmite superior nmero de marcos

lmite inferior

Decrementar el
nmero de marcos

Nmero de
marcos

Memoria virtual

14

Mecanismos de asignacin y liberacin


(i)

Asignacin de MP:

Determinan el nmero de marcos a asignar al


proceso activo
El mximo est definido por la arquitectura
Bajo n marcos muchos fallos de pgina,
hiperpaginacin
Alto n marcos desaprovechamiento de la MP

Liberacin de MP

El SO mantiene el conjunto de marcos libres y libera,


a partir de un umbral, los que no son necesarios
Estrategias:

Reemplazo local
Reemplazo global
Memoria virtual

15

Mecanismos de asignacin y liberacin


(ii)
Liberacin de MP

Reemplazo local:

Se libera un marco asignado al proceso que provoc el fallo


Ventaja: N de fallos de los programas es ms determinista
Inconvenientes:

Saber n de marcos necesario en cada instante por proceso


Desaprovechamiento de la MP si la carga del sistema es baja

Ejemplos: VMS, Windows NT, 2k y XP

Reemplazo global:

Se libera un marco asignado cualquier proceso del sistema


Ventaja: Mejor aprovechamiento de la MP
Inconvenientes:

El n de fallos de los programas es menos determinista


Puede llevar a la hiperpaginacin

Ejemplo: UNIX
Memoria virtual

16

Mecanismos de asignacin y liberacin


(iii)

Mecanismos para contabilizar la MP utilizada y


libre:

Mapa de bits de los marcos de memoria Poco


eficiente
Bloques
Listas enlazadas de marcos: libres, modificados,
conlibres
0s,
etc.
1024 Kb
Inicial
1

Ej. W2k

P1

128

256

512

P2 pide 35

P1

P2 64

256

512

P3 pide 80

P1

P1 pide 70

Sistema Buddy

Devuelve
P1
P4 pide 60
Devuelve
P2
Devuelve
P4

P2 64
128 P2 64

P3

128

512

P3

128

512

128 P2 P4

P3

128

512

128 64 P4

P3

128

512

256

P3

128

512

1024 Kb
Memoria virtual

17

Algoritmos de gestin de la memoria


virtual

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?
Poltica de reemplazo: Qu bloque debera
sustituirse al traer a memoria principal un nuevo
bloque si no hay memoria libre?

Memoria virtual

18

Polticas de asignacin

Determinan el nmero de marcos a asignar al


proceso activo
Algoritmos:

Asignacin equitativa
Asignacin proporcional
Asignacin prioritaria

Memoria virtual

19

Polticas de ubicacin

Mtodos utilizados para identificar dnde debe


ubicarse un bloque en MP
Polticas de ubicacin:

En paginacin:

Indiferente

En segmentacin:

First fit: el primero que sirva


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

Memoria virtual

20

Polticas de bsqueda

Determinan cundo y qu pginas se traen de disco a


MP
Estrategias:
Paginacin por demanda:

Se cargan las pginas en MP segn se van necesitando


Ventajas:

En MP slo hay lo que se necesita


La sobrecarga de la decisin de qu pginas traer a MP es
mnima

Paginacin anticipada o prepaginacin:

Se cargan la pginas en MP segn una prediccin


Trata de evitar los retardos por fallos de pgina
Ventajas:

Si la prediccin es buena, el tiempo de ejecucin de los


procesos se reduce considerablemente Memoria virtual

21

Polticas de reemplazo de pginas (i)

Deciden qu paginas deben sustituirse en MP


cuando se necesita ms memoria
Objetivo:

Minimizar el nmero total de fallos de pgina

Tasa de fallos uno por cada 106 2 x 107 accesos

Obtener el mximo aprovechamiento de la MP

Criterios para valorar la calidad de los algoritmos


de sustitucin:

Baja sobrecarga
Sin ajustes (No tuning), en mquinas con distintas
configuraciones
Aproximacin al LRU (menos usada recientemente)
Memoria virtual

22

Polticas de reemplazo de pginas (ii)


Cadenas de referencia

Los algoritmos de reemplazo minimizan fallos de


pgina
Cadenas de referencia:

Listas de referencias a pginas para evaluar la


calidad de los algoritmos de reemplazo
Obtencin de las cadenas de referencia:

Artificialmente, de forma pseudoaleatoria


Grabando una traza de ejecucin

Ejemplo (Pginas de 100h palabras):

0100, 0432, 0101, 0612, 0102, 0103, 0104, 0101,


0611, 0102, 0103, 0104 0101, 0610, 0102, 0103,
0104, 0101, 0609, 0102, 0105
Cadena de referencias:

slo se considera el nmero de pgina y los casos que


pueden causar fallos de pgina
1, 4, 1, 6, 1, 6, 1, 6, 1, 6, 1
23
Memoria virtual

Polticas de reemplazo de pginas (iii)


Algoritmos de reemplazo de pginas

Existen diferentes algoritmos, entre ellos:

Algoritmo ptimo
Algoritmo FIFO
Algoritmo LRU
Algoritmos de aproximacin al LRU:

Algoritmo del reloj global


Algoritmo FIFO con segunda oportunidad
Algoritmo NFU

Memoria virtual

24

Polticas de reemplazo de pginas (iv)


Algoritmo ptimo

Se reemplaza la pgina que va a tardar ms tiempo


en usarse
La tasa de fallos es la ms baja posible
Algoritmo imposible de realizar

0
7

Criterio comparativo
1

2
7

4
0

0
4

3
1

3
1

8 fallos de pgina
Memoria virtual

25

Polticas de reemplazo de pginas (v)


Algoritmo FIFO

Sustituye a la pgina que lleva ms tiempo en


memoria
Ventaja: Algoritmo sencillo de entender e
implementar
Inconvenientes:

Rendimiento pobre. Es posible sustituir pginas muy


7
0 usadas
1
2
0
3
0
4
2
3
0
3
2
1
2
0
Anomala de Belady: aumento del nmero de fallos de
0marcos
0
0
7
7 pgina
7
2al aumentar
7
2
2
2 el4
2nmero
4
4 de4
0
0
0

0
3

2
3

2
1

0
1

3
0

2
3

12 fallos de pgina

Memoria virtual

26

Polticas de reemplazo de pginas (vi)


Algoritmo FIFO. Anomala de Belady
1

2
3

1
2

3
1
2
3

1
4
2
3

4
1
2

1
4

1
5

1
3
2

1
2

1
2

1
2

1
3
2

3
2
4

3
4

1
2
3

5
1
3
2
4

5
1
2
3
4

5
4

1
2

5
3
2

5
2
1
3
4

2
3

1
2
3

1
5
2
3

9 fallos de
pgina

10 fallos de
pgina

Memoria virtual

27

Polticas de reemplazo de pginas (vii)


Algoritmo LRU (Least Recently Used)

7
7

Algoritmo de aproximacin al reemplazo ptimo


Utiliza el pasado reciente para predecir el futuro
prximo, sustituye la pgina menos usada en el
pasado inmediato
Ventaja: Carece de la anomala de Belady
Inconv: La implementacin requiere de hardware
adicional
0Campo
1 2 en 0las entradas
3 0 4 de2 la 3
0 de3pginas
2 1
tabla

7 Pila
7 de7
2las 2pginas
2 2en4
2memoria
4 4
0 0 0
0 0 0 0 0 3
0
2 2
1 1
1 3
1 3 3 3

4
0
3
2

1
3
2

1
3
0
2

11 fallos de pgina

3
2

3
2

1
0
3
2
0

Memoria virtual

3
28

Polticas de reemplazo de pginas (viii)


Algoritmo del reloj global

Se colocan todas las pginas que pueden ser


sustituidas en una lista circular
Un proceso de sistema borra los bits de referencia
cada cierto tiempo utilizando un puntero giratorio
Si en la siguiente vuelta el bit sigue desactivado, la
pgina puede ser sustituida
Ejemplo: 4.3 BSD con 2 punteros
20

8
1
6 1

Pginas
3
4 2
5

10

7
Memoria virtual

29

Polticas de reemplazo de pginas (ix)


Algoritmo FIFO con segunda oportunidad

Emplea un bit de referencia asociado a cada


pgina
Pasos del algoritmo:
1.

Se elige una pgina con criterio FIFO y se examina


su bit de referencia

Si R = 1, entonces R = 0 y se trata la pgina como si


se acabara de llegar a memoria. Volver a 1
Si R = 0, se sustituye la pgina

Generalmente se implementa mediante una cola


FIFO circular con las pginas cargadas
Ventaja: Combina sencillez y buen rendimiento
Inconveniente: Puede degenerar en un FIFO puro si
todas las pginas han sido referenciadas
Memoria virtual

30

Polticas de reemplazo de pginas (x)


Algoritmo FIFO con segunda oportunidad
7 0
0
7 7
0

2
7

0
1

0
1

0
1

0
3
1

0
1

2
0
1

1
1
0

0
1

1
2
0
1

2
0

4
0

4
2

4
2

4
2

2
0

7
7

0
0

0
0

1
2

1
0
1

3
1
0

3
1

0
1

1
0
0

0
1
2

1
1
1

12 fallos de
pgina

Memoria virtual

31

Polticas de reemplazo de pginas (xi)


Algoritmo NFU (Not Frequently Used)

Algoritmo que simula por software el algoritmo LRU


Por cada interrupcin de reloj:

Se incrementa un contador asociado a cada pgina si R


=1
R=0

Si hay un fallo de pgina se elige la pgina con el


valor mnimo del contador para su sustitucin
Problema: Si una pgina se us mucho, no ser
sustituida aunque ya no se acceda a ella
Solucin: mecanismos que envejezcan los contadores

Desplazar los contadores 1 bit a la derecha antes de


aadir el bit de referencia
Aadir el bit de referencia al bit del extremo izquierdo
del contador
Memoria virtual

32

Polticas de reemplazo de pginas (xii)


Algoritmo NFU (Not Frequently Used)
7
0

0
1

2
7
2
0
1
7

1 interrupcin
de reloj

0
2
0
1

3
3
2
0
1

0
3
0
1

3
0
4

3
0
2

2 interrupcin
de reloj

3
3
0
2

0
2

0
2

0
2

3 interrupcin
de reloj

3
0
1

3
0
2

3
0
2

4 interrupcin
de reloj

9 fallos de pgina
Estado final
0 1 2 3 4 5 6
0 1 2 3 4 5 6
R7 1
01 01 1
00 1
00 0 0 0 01 R 7 1 0 1
0 0 0
1 1
01 00 0
C

2 1
1
0
0

1 01 0
0

0 1
0

2 1
4 3
1 1

02 1

Memoria virtual

33

Caso de estudio: Mach 3.0

Posee un algoritmo FIFO con segunda oportunidad


Utiliza tres colas de pginas:

Cola de pginas libres


Cola de pginas activas
Colas de pginas inactivas

Un demonio denominado pageout mueve


pginas:

Desde la cola de pginas activas a la cola de pginas


inactivas
Desde la cola de pginas inactivas a la de pginas
libres

Memoria virtual

34

Caso de estudio: Mach 3.0

Localizacin

Cola libre

Pageout Scan

Pageout Scan

Cola activa

Cola inactiva
Referencia

Las colas activa e inactiva son FIFO


Las pginas que estn en la cola inactiva y son
referenciadas, se pasan a la cola activa
Memoria virtual

35

Caso de estudio: Mach 3.0

Despertar pageout:
if (free_queue_pages < vm_page_free_min) {
resume pageout;
}

Cdigo base de pageout:


while ((free_queue_pages < vm_page_free_target){
if(page->referenced)
move page from inactive queue to active queue
else
move page from inactive queue to free queue
}
while (inactive_queue_pages < vm_page_inactive_target)
{
move page from active queue to inactive queue
and clear the reference bit
}
Memoria virtual

36

Caso de estudio: Linux

Niveles de tablas en Linux

Nivel 1
Tabla de
pginas

#Pgina

Nivel2
Nivel3
Desplazamiento
Tabla de
pginas

#Pgina

Tabla de
pginas

Pgina
fsica

#Pgina

PGD
Memoria virtual

37

Caso de estudio: Linux


Memoria
virtual
del proceso

vm_area_struct

task_struct

vm_end
vm_start
vm_flags
vm_inode
vm_ops

mm

mm_struct
count
pgd
mmap

vm_next

Datos
open ( )
close ( )

vm_area_struct
vm_end
vm_start
vm_flags
vm_inode
vm_ops

swapout
()
swapin
()
Operaciones de Cdigo
memoria virtual

vm_next
Memoria virtual

38

Caso de estudio: Linux


mem_map_t

mem_map_t

count

count

age

age

3
2

map_nr= 70

map_nr= 4

mem_map_t
count
age

Memoria fsica

free_area

1
0

map

Marco 0

Libre

Marco 1
Marco 2
Marco 3
Marco 4

Libre

Marco 5

Libre

Marco 6

Libre

Marco 7

Libre

Marco 8
map_nr= 0

Memoria virtual

39

Caso de estudio: Linux


Apertura y proyeccin del programa sobre
las reas de memoria virtual del proceso
Fallo de pgina

Paginacin
bajo
demanda

Direccin legal?
Acceso legal?

Traer pgina
desde el
rea de
intercambio

S
Fallo de pgina legal
No

Entrada vaca en la TP?

No

No

Acceso ilegal.
Enviar seal
SIGSEV al
proceso

Traer pgina
desde el
S archivo en
disco
Memoria virtual

40

Caso de estudio: Linux

Gestin del rea de intercambio:

Un demonio de intercambio (kswapd) se encarga de


mantener suficientes marcos libres
kswapd se ejecuta como un hilo del ncleo
activndose en el arranque del sistema
kswapd cada segundo comprueba si el nmero de
marcos libres es demasiado bajo. Si es as, busca
marcos que puedan ser descartados o sustituidos
Algoritmo implementado en el demonio: algoritmo de
aproximacin al LRU con envejecimiento

Memoria virtual

41

Caso de estudio: Linux

Tcnica de envejecimiento de pginas:

Al asignar un marco de pgina se le asocia por


defecto edad 3
Las pginas rejuvenecen al acceder a ellas (edad+3
hasta un mximo de 20)
Cada vez que se ejecuta kswapd envejece las
pginas en 1 si no se usan
Las pginas vctimas para los intercambios se eligen
de entre las pginas viejas (edad 0) y modificadas
La funcin apuntada por vm_ops->swapout ,
correspondiente a la regin de memoria
(vm_area_struct) , gestionar el paso de la pgina
vctima a disco.

Memoria virtual

42

Caso de estudio: Linux

Si una pgina modificada se lleva a disco:

Las pginas no modificadas no se sustituyen:

su entrada en la tabla de pginas se marca como invlida


se incluye la informacin para su recuperacin posterior y
se libera, aadindola en la free_area
se descarta su contenido
se marcan como libres, aadindolas en la free_area

Si se recuperan suficientes pginas del proceso


seleccionado, el demonio dormir de nuevo
Si no se liberan suficientes pginas del proceso
actual, se contina con el siguiente proceso
El demonio empezar en la pgina siguiente en una
nueva activacin

Memoria virtual

43

Caso de estudio: Linux

Proceso A
Pgina 0
Pgina 1
Pgina 2
Pgina 3

Proceso B
Pgina 0
Pgina 1
Pgina 2

Tabla de pginas A
BV BR BM

1
1

0
1

Memoria fsica

Pgina 3

Marco 0

Pgina 0

Marco 1

Pgina 1

Marco 2

Tabla de pginas B
BV BR BM

Pgina 1
Pgina 2

Marco 3
Marco 4
Marco 5

Memoria virtual

44

Caso de estudio: Linux

kswapd
Proceso A
Pgina 0
Pgina 1
Pgina 2
Pgina 3

Proceso B
Pgina 0
Pgina 1
Pgina 2

Tabla de pginas A

BV BR BM

1
0

0
1

1
x

Tabla de pginas B
BV BR BM

Edad de los marcos de pgina


0
1 2
3 4
9

Memoria fsica
Pgina 3

free_area
2

Pgina 0

Pgina 1

Pgina 1
swap

Memoria virtual

45

Caso de estudio: W2K

El gestor de memoria virtual de WNT utiliza un


algoritmo de reemplazo de pginas local tipo FIFO
La poltica de reemplazo sustituye la pgina ms
antigua del conjunto de pginas del proceso que
caus el fallo
Conjunto de trabajo (WS): nmero de pginas que
el proceso tiene garantizadas en memoria mientras
se est ejecutando
Pginas nuevas

Pginas antiguas

Conjunto
de
trabajo

Memoria virtual

46

Caso de estudio: W2K

Al crearse un proceso se le asigna un tamao


mnimo del WS
El gestor vara el tamao de los WS de los procesos
segn los requirimientos de memoria:

Incrementa la memoria libre del sistema (recorte


automtico del WS) de un proceso si su tamao es
mayor que el mnimo
Incrementa el tamao del WS hasta un mximo si el
proceso genera fallos de pgina y la memoria no est
demasiado llena
Si el proceso requiere ms pginas, se eliminan
pginas de su WS empleando el algoritmo FIFO

Memoria virtual

47

Caso de estudio: W2K

Las pginas eliminadas del WS pueden volver a l


rpidamente sin realizar lectura del disco
Permanecen en memoria en uno de estos estados:

Standby: el proceso utiliza el marco de pgina pero


ha sido eliminado del WS
Modificado: = Standby pero el proceso ha escrito en
la pgina sin actualizacin de disco

lista de pginas
en standby o
modificadas
Conjunto de trabajo
Memoria virtual

48

Caso de estudio: W2K


Fallo de
pgina
cero

WS
de

Lectura de pgina del disco o ncleo


Lista de
marcos
Standby
Fallos
Escritor
de
de marcos
pgina
modific.
soft

procesos

Lista
de
marcos
libres

Hilo
de marco
Cero

Lista
de
marcos
Cero

Lista de
marcos
Modific.

Sustitucin
en el WS
Finaliza el proceso

Lista de marcos
errneos
Memoria virtual

49

También podría gustarte