You are on page 1of 32

FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS

MEMORIA VIRTUAL

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


MEMORIA VIRTUAL

La M.V. es una técnica de gestión que, combinado


hardware y software permite la ejecución de
programas parcialmente cargados en memoria real.

Características de la M.V.
Ventajas
 Aumenta el grado de multiprogramación al requerir menos
memoria real.
 Programas pueden ser mayores que el espacio de
memoria física.
 Libera al programador de preocuparse de limitaciones de
memoria

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


MEMORIA VIRTUAL

El empleo de la memoria virtual, genera que las direcciones calculadas


por programas en ejecución no necesariamente son las disponibles en
memoria principal.
El sistema operativo mantiene aquellas partes del programa
que se utilicen en cada momento en la memoria principal y
el resto permanece en el disco.
Para implementar la M.V. suele emplearse las siguientes
técnicas:
 Gestión de memoria por paginas
 Gestión de memoria por segmentos

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


Paginación bajo demanda

La paginación bajo demanda es el sistema de memoria virtual mas


corriente, su funcionamiento es similar a un sistema de paginación con
intercambio, los programas residen en un dispositivo de intercambio, la
memoria auxiliar. Cuando queremos ejecutar un programa lo cargamos a
memoria principal.
El intercambio nunca carga una página en la memoria principal a menos
que sea precisa.
Cuando el programa trata de acceder a una página que no se ha llevado a
memoria se produce un fallo de página
El hardware de paginación traduce la dirección del usuario en una
dirección física utilizando una tabla de página que tiene asociado una
columna bit de validez donde:
v = valido (la pagina esta en MP)
i = invalido (la pagina esta en memoria auxiliar)

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


Tabla de pagina cuando algunas paginas no están en memoria física

Bit de
Celda validez

0 4 v 0

i 1
0 1
A 6 v 2
1 2
B 3
3 i
2 4 A
C i
3 4 5
D 5 9 v 6 C
4 E
A B C
6 i 7
5
F 7 i D
8 E F G H
6 G 9 F
7 H Tabla de 10
pagina 11
Memoria
Memoria auxiliar
lógica
Memoria física

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


Pasos para un tratamiento de fallos de pagina

1.- Se detecta que la pagina no esta en memoria


2.- Se produce una interrupción
3.- Se busca la pagina en almacenamiento secundario (disco)
4.- Se busca un marco libre
5.- Se actualiza la tabla de pagina
6.- Reiniciar la instrucción 3
La pagina esta en

S.O. Memoria
2 auxiliar
interrupción

1
referencia
i

Cargar m
5 4
Celda libre
6 tp
actualizar Cargar la
tabla de pagina en
Reiniciar la pagina memoria
instruccion

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


Algoritmo de reemplazo de pagina

Acción
Iniciar el procesamiento de la instrucción
Generar la dirección del dato
Calculo del número de página
Si la celda esta en memoria entonces
Avanzar la siguiente instrucción
Sino
/* Se inicia la interrupción por fallo de pagina
Si no hay celda libre
Entonces
Seleccionar la pagina (víctima) a eliminar en M.P
Según algoritmo de reemplazo
Escribir la pagina en memoria auxiliar
fsi
Conseguir número de celda libre
Actualizar la tabla de página y de celda
Reiniciar el proceso del usuario
fsi
Facción

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


Rendimiento

Tiempo de acceso efectivo


Sea
p probabilidad por falta de pagina
Tmp tiempo de acceso a memoria principal
Tfp tiempo de acceso por falta de pagina
Tefmp tiempo de acceso efectivo a memoria principal

Tefmp= (1 - p) * Tmp + p * Tfp

Objetivo de cualquier algoritmo de reemplazo: Obtener la menor tasa


de fallos de página posible

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


FIFO primero en entrar, primero en salir (First In, First Out)

• Se sustituye la pagina que lleva mas tiempo en memoria (la mas antigua)
• Ejemplo: la cadena de referencia

7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0

7 7 7 2 2 2 4 4 4 0 0 0
0 0 0 3 3 3 2 2 2 1 1
1 1 1 0 0 0 3 3 3 2
f f f f f f f f f f √ √
√ f f √
7 0 1 2 3 0 4 2 3
f3= 12 Es la pagina que sale Es la pagina que ingresa

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


COMO FUNCIONA FIFO

Inicialmente las tres celdas están vacías. Las tres primeras


referencias ( 7, 0, 1) generan fallos de pagina y se cargan en estas
celdas vacías.
En la cuarta referencia (2):
Las paginas que están en memoria {7,0,1}
- La pagina 7 es la mas antigua, entonces la pagina 2,
reemplaza a la pagina 7.
La quinta referencia (0): y 0 ya se encuentra en memoria, no
tenemos fallos de pagina para ella.
En la sexta referencia (3):
Las paginas que están en memoria {2,0,1}
- La pagina 0 es la mas antigua, entonces la pagina 3,
reemplaza a la pagina 0

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


FIFO primero en entrar, primero en salir (First In, First Out)

Algoritmo sencillo de entender e implementar


Inconvenientes:
Rendimiento del algoritmo pobre. Páginas
frecuentemente usadas pueden ser sustituidas
Se puede producir la Anomalía de Belady: aumento
del número de fallos de página al aumentar el
número de marcos

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


Anomalía de Belady

Ejemplo con 3 y 4 marcos de pagina

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

1 1 1 1
4 4 4 5
1 5 5 5 5 5
1 22 23 24 1
21 1
2 51 1
1 21 331 43 53
3 3 3 3
2 2 2 2 2 2
4 4
1 2 3 4 1 2
Con 3 marcos, 9 fallos de página

1 1 1 4
1 4
1 4
4 5
5
1
1 5 5 5
4 5
4
2 2 2 1
2 1
1 1
2
2 2 1 3
1 3
1 5
3
3 3 3 2
3
2 3
3 2 2
3 2 4
2 4
2
4 4 4 4
4 4 4
3 3 3
1 2 4
3 1 2
Con 3 marcos, 9 1 2 de3págna
fallos 4 5 1
Con 4 marcos, 10 fallos de página

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


REEMPLAZO OPTIMO

 Se reemplaza la pagina que va a tardar mas tiempo en


ser usada
 Cuando hay dos o mas paginas lejanas se aplica fifo
 La tasa de fallos de pagina es la mas baja posible

Ejemplo: la cadena de referencia


7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0

Determinar el numero de fallos de pagina cuando M=3

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


REEMPLAZO OPTIMO

1 Entre la 7, 0 y 1 la 7
2 Entre la 2, 0 y 1 la 1 2
1 2 2 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0

7 7 7 2 2 2 2 2
0 0 0 0 4 0 0
1 1 3 3 3 1
f f f f √ f √ f √ √ f √ √ f √ √
7 1 0 4 3
1 2
f3 = 8

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


Como funciona reemplazo optimo

A la cadena de referencia le damos numeración: 1, 2, 3, 4,…


Inicialmente la memoria esta vacía, con lo que habrá 3 fallos de página
hasta llenarla
En la cuarta referencia (2):
Las paginas que están en memoria {7,0,1},
- La pagina 7 no se encuentra (la pagina que no se encuentra es la
mas lejana)
- La pagina 0 en la posición 5( la primera que encuentre)
- La pagina 1 en la posición 14

entonces la pagina mas lejana es la pagina 7,que hay que reemplazar

Nota.- la pagina 0, esta en la posiciones 5, 11 y 15


Se elige la primera, que es la posición 5

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


LRU la de menor uso recientemente (Last Recently Used)

 Algoritmo de aproximación al reemplazo óptimo.


 Basado en utilizar el pasado reciente como una
predicción del futuro más próximo.
 Sustituye la página menos usada en el pasado
inmediato.
 Carece de la anomalía de Belady

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


LRU la de menor uso recientemente (Last Recently Used)

Ejemplo: sea la cadena de referencia

7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0

7 7 7 2 2 4 4 4 0 1 1
0 0 0 0 0 0 3 3 3 0
1 1 3 3 2 2 2 2 2
f f f f √ f √ f f f f √ √ f √ f
7 1 2 3 0 4 0 3

f3 = 11 f

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


Como funciona LRU

Inicialmente la memoria esta vacía, con lo que habrá 3 fallos de página


hasta llenarla
En la cuarta referencia (2):
Las paginas que están en memoria {7,0,1}
- La pagina 1, se utilizo mas recientemente y justo antes que ella se
empleo la pagina 2, la pagina 7 se utilizo menos recientemente que hay
que remplazarla
entonces la pagina 7, que hay que reemplazar
En la sexta referencia (3):
Las paginas que están en memoria {2,0,1}
- La pagina 0, se utilizo mas recientemente y justo antes que ella se
empleo la pagina 2, la pagina 1 se utilizo menos recientemente que hay
que reemplazarla.
entonces la pagina 3, que hay que reemplazar

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


RELOJ

Un puntero va recorriendo los distintos marcos de pagina


Asocia a cada marco un bit adicional, llamado bit en uso (
0 o 1)
Cuando se introduce una pagina el bit en uso se pone en 0
(R = 0).
Cuando se accede a una pagina que esta en memoria no
se avanza puntero y considerar:
Si R = 0 entonces se cambia a 1( R=1)
Si R = 1 entonces queda igual ( R = 1)

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


RELOJ

Si se produce un fallo de pagina se analiza el R al que


apunta el puntero
Si R =0, se reemplaza la pagina y avanza una
posición el puntero
Si R = 1, se cambia a R=0 y así sucesivamente se
avanza el puntero hasta encontrar R = 0

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


RELOJ

Ejemplo: sea la cadena de referencia

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

20 20 21 21 20 21 21 21 20 21 21 21
30 30 30 50 50 50 51 50 50 51 51
10 10 10 40 40 30 30 30 30
f f √ f f √ f √ f √ √ √

3 1 4

f3 = 6 f

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


Como funciona RELOJ

Inicialmente la memoria esta vacía


La primera referencia (2)
es fallo de pagina, se coloca 20, en la primera celda y avanza
puntero a la siguiente celda
La segunda referencia (3)
es fallo de pagina, se coloca 30, en la segunda celda y avanza
puntero a la siguiente celda
La tercera referencia (2)
2 ya se encuentra en memoria {20 , 30}, no tenemos fallos de pagina
para ella, no avanza puntero y cambia su bit en uso entonces {21 , 30}.
La cuarta referencia (1)
es fallo de pagina, se coloca 10, en la tercera celda y avanza
puntero a la siguiente celda

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


Como funciona RELOJ

La quinta referencia (5)


Si se produce un fallo de pagina se analiza el R al que
apunta el puntero. El puntero apunta a 21 su bit es 1,
cambiamos a cero (20) y avanzamos puntero, el puntero apunta a 30,
entonces 30, es la pagina que tenemos que reemplazar y avanzamos
puntero.
La sexta referencia (2)
2 ya se encuentra en memoria {20 , 50 , 10}, no tenemos
fallos de pagina para ella, no avanza puntero y cambia su
bit en uso entonces {21 , 50 , 10}

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


PILA

Otra forma de implementar el LRU, consiste en mantener


una pila de número de pagina
En la parte superior de la pila esta siempre la pagina
utilizada mas recientemente y en la parte inferior la pagina
utilizada menos recientemente.

Distancia de la cadena
Se determina por la posición en que se encuentra antes de
la referencia a una pagina.

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


PILA

3 4 1
3 4 1 El 1 se encuentra en
la fila 3(columna
1 3 4 anterior)

7 1 0
5 7 7

4 5 5
6 6 6
2 2 2
Distancia de 5 3
8 8 8
la cadena

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


PREDICCION DE LA TASA DE FALLOS DE PAGINA

Una de la propiedades de la distancia de la cadena es su


utilidad para predecir el número de fallos de página que se
podrían ocurrir con memoria de tamaños diversos.

El algoritmo analiza la distancia de la cadena, pagina a


página, lleva un registro:
 El número de veces que aparece el 1
 El número de veces que aparece el 2, etc.

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


PREDICCION DE LA TASA DE FALLOS DE PAGINA

Otra forma de implementar el LRU, consiste en mantener


una pila de número de pagina
En la parte superior de la pila esta siempre la pagina
utilizada mas recientemente y en la parte inferior la pagina
utilizada menos recientemente.

Distancia de la cadena
Se determina por la posición en que se encuentra antes de
la referencia a una pagina.

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


PREDICCION DE LA TASA DE FALLOS DE PAGINA

Sea:
Ci el número de ocurrencias de i
Calculemos el vector F según la formula:
n
FM =  Ck+C
K=M+1

Donde
FM = Número de fallos de pagina que aparecen con M celdas
C = Número de veces que aparece en la distancia de la cadena.

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


PREDICCION DE LA TASA DE FALLOS DE PAGINA

7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2
7 0 1 2 2 3 0 4 2 2 0 3 3 1
7 7 1 1 2 3 0 4 4 4 0 0 3

7 7 1 1 1 1 1 1 4 4 4
7 7 7 7 7 7 7 7 7

f f f f  f  f      f   f4 = 7
Distancia
de la cadena     3  2  4 4 4 2 3 5 2 4

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


PREDICCION DE LA TASA DE FALLOS DE PAGINA

Distancia de
la cadena     3  2  4 4 4 2 3 5 2 4

Vector c vector f
5

c1 = 0 f1 = ck + c =(C2 + C3 + C4 + C5 ) + 6 = ( 3+2+4+1 ) + 5 = (10)+5 =15


k=2
c2 = 3 f2 = ( c3 + c4 + c5 ) + 6 = ( 2+4+1 ) + 6 =13
c3 = 2 f3 = ( c4 + c5 ) + 6 = ( 4 + 1) + 6 = 11
c4 = 4 f4 = (c5) + 5 = (1) + 6 = 7
c5 = 1 f5 = (0) + 6 = 6
c = 6 f = 6

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


CONTINUA!!

You might also like