la memoria virtualsistemas operativos diapo. no. 1 if its there and you can see it - its real if its...

57
La memoria virtual Sistemas Operativos Diapo. No. 1 If it’s there and you can see it - it’s real If it’s not there and you can see it - it’s virtual If it’s there and you can’t see it - it’s transparent If it’s not there and you can´t see it - you erased it! IBM poster explaining virtual memory, circa 1978 La memoria virtual

Upload: amaranto-zegarra

Post on 14-Apr-2015

6 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 1

If it’s there and you can see it - it’s real

If it’s not there and you can see it- it’s virtual

If it’s there and you can’t see it- it’s transparent

If it’s not there and you can´t see it- you erased it!

IBM poster explaining virtual memory, circa 1978

La memoria virtual

Page 2: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 2

Características memoria virtual

programa 1M

computadora512K en RAM

Programas muy grandes no caben en memoria disponible:

solución: dividir programa en partes (capas)

capa 0: se ejecuta primeroterminase llama la capa 1

Capas se mantienen en disco (zona de swap) y se intercambian con la memoria por medio del sistema operativo

Page 3: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 3

Aspectos a tomar en cuenta

• Responsabilidades:– Intercambio capas disco/memoria: sist. operativo

– Dividir programa: programador

• Originalidad– división programa responsabilidad del sistema

– método diseñado por Fotheringham (1961)

– método conocido como memoria virtual

• Principio– Sistema operativo mantiene en memoria aquellas

partes del programa que se usen (referencien) y el resto permanece en disco

– direcciones generadas dentro de un programa mediante índices, registros base, de segmento y otros, se denominan espacio direcciones virtuales

– las direcciones de la memoria disponible (memoria física) se conocen con el nombre de direcciones físicas

Page 4: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 4

– si no hay memoria virtual: • la dirección virtual es la dirección física

– con memoria virtual• es necesario saber que dirección física le

corresponde a la dirección virtual

• Métodos– paginación

– segmentación

Page 5: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 5

C

PU

Un

idad

ad

mon

. d

e m

emor

ia

Mem

ori

aC

ontr

olad

or

de

dis

co

BU

S

La C

PU e

nví

a la

s d

irec

cio

nes

vi

rtu

ales

a la

MM

U

Tarj

eta

CPU La M

MI

enví

a la

s d

irec

cion

es

físic

as a

la m

em

oria

Page 6: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 6

La paginación

- Espacio direcciones virtuales se divide en unidades llamadas páginas.

- Las unidades correspondientes en memoria física se llaman marcos para páginas

- Las páginas y los marcos tienen siempre el mismo tamaño.

- Fallo de página:pagina no asociada con algún marco

Page 7: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 7

pag 0

pag 2

pag 1

pag n

.

.

.

.

memoria virtual

mapa de

memoria

memoria física disco

Page 8: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 8

A

B

C

D

E

F

G

H

0

memoria lógica

0

4

9

6

i

v

i

v

i

i

v

i

marca

válido

no - válido

tabla de

páginas

A

memoria física (RAM)

disco

A B

D EC

F

1

2

3

4

5

6

7

1

2

3

4

5

6

7

0

1

2

3

45

6

7

10

11

12

13

14

15

C

F

8

9

Page 9: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 9

16 17 18 19

12

13 14

15

8 9 10 11

0 1 2 3

20

21

22

23

4 5 6 7

programa A

programa

B

discomemoria RAM

Page 10: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 10

H

cargar M

J

M

memoria lógica para el usuario 1

D

C

B

A

memoria lógica para el

usuario 2

3

4

5

v

v

v

i

bit de validez / no validez

marco

Tabla de páginas para el usuario 1

3

4

5

v

v

v

i

bit de validez / no validez

marco

Tabla de páginas para el usuario 1

monitor

H

D

J

A

E

cargar M

memoria física

B

M0

3

1

4

5

2

6

7

0

3

10

31

2

2

Page 11: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 11

0

f v

i

bit de validez / no validez

marco

tabla de páginas

2

4

cambiar a no

válido

restablecer la tabla por la nueva página

f

víctima

memoria física

1

3

Intercambiar a disco la página víctima

Inter cambiar a la memoria la página adecuada

Page 12: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 12

0- 4k 4K- 8K 8K-12K 12K-16K 16K-20K 20K-24K 24K-28K 28K-32K 32K-36K 36K-40K 40K-44K 44K-48K 48K-52K 52K-56K 56K-60K 60K-64K

2 1 6 0 4 3 x x x 5 x 7 x x x x

0- 4k 4K- 8K 8K-12K 12K-16K 16K-20K 20K-24K 24K-28K

} 28K-32K

Marco para página

Página virtual

Direcciones en la memoria fisica

Espacio de direcciones virtuales

}

Ejemplo paginación

Page 13: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 13

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

010 1 001 1 110 1 000 1 100 1 011 1 000 0 000 0 000 0 101 1 000 0 111 1 000 0 000 0 000 0 000 0

110

Tabla de páginas

El ajuste de 12 bits se copia en

forma directa de la entrada a

la salida

Bit presente/ausente

Página virtual = 2 se utiliza como un índice en la tabla de

páginas.

Dirección física de salida (24580)

Dirección física de salida (24580)

Dirección física de salida (15 bits) (24580)

Dirección virtual de entrada (16 bits) (8196)

16 páginas de 4K

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

0 0 1 0 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 16

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Page 14: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 14

PT 2PT 1 Offset

10 10 12

Bits

01

23

45

6

7

1023

PT 1

Tabla de páginas de nivel superior

Hacia las páginas

01

23

45

67

1023

Tabla de páginas para los 4 M supe- riores de la memoria

(a)

(b)

(a) Una dirección de 32 bits con dos campos para la tabla de páginas. (b) Tablas de páginas de dos niveles

Tabla de páginas de segundo nivel

Tabla superior: c/entrada = 4M => se tienen 4G de direcciones virtuales232 = 4,294,967,296 = 4G

Page 15: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 15

Ejemplo direccionamiento

Espacio direcciones virtuales: 232 = 4,294,967,296 = 4G Ejemplo dirección virtual: 0x00403004 = 0000 0000 0100 0000 0011 0000 0000 0100

=> PT1 = 1 PT2 = 3 Offset = 4

PT2 = 3

4M

8M

tabla 1

tabla 1023

PT1 = 1

1

0

4M -1tabla 0

x12292 (dir. abs 4,206,592)

a16383 (dir. abs 4, 210,687)

:x contiene el númerode marco de la página

con dirección 0x00403004

Page 16: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 16

Compartiendo páginas

- Posibilidad de compartir código en común- Importante en tiempo compartido

ed1

ed2

ed3

datos1

Contexto del proceso p1

3461

Tabla Páginas

de p1

datos 1

ed1

datos 3

ed2

datos2

ed3

ed1

ed2

ed3

datos2

Contexto del proceso p2

3467

Tabla Páginas

de p2

ed1

ed2

ed3

datos3

Contexto del proceso p3

3462

Tabla Páginas

de p3

01

2

3

4

5

6

7

8

9

10

Page 17: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 17

Desempeño paginación por demanda

• Paginación por demanda puede tener un efecto importante sobre el desempeño de un sistema

• Necesario calcular el tiempo de acceso efectivo

• Tiempo acceso memoria (am) varía entre 10 y 200 nanosegundos

• Si no hay fallos: tiempo acceso efectivo es el mismo que el tiempo de acceso a memoria

• Si ocurre un fallo hay que leer del disco la página y luego acceder a la palabra deseada

• Entonces:

– si p es la probabilidad de que ocurra un fallo,

– cabe esperar que esta probabilidad es cercana a 0

– el tiempo efectivo de acceso (tea) es:

• Para calcular lo anterior necesitamos saber cuánto tiempo toma resolver un fallo de página

) ( )1( páginadefallótiempopamptea

Page 18: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 18

Secuencia fallo de página

1. Notificación al sistema operativo

2. Guardar los registros del usuario y estado del proceso

3. Determinar que la interrupción fue un fallo de página

4. Verificar que la referencia a la página fue válida y determinar la posición de la página en disco

5. Leer del disco a un marco libre

a. Esperar en la fila de espera de este dispositivo, hasta que se atienda la solicitud de lectura

b. Esperar durante el tiempo de búsqueda y/o latencia del dispositivo

c. Iniciar la transferencia de la página a un marco libre

6. Durante la espera asignar la CPU a algún otro usuario

7. Interrupción del disco (E/S terminada)

8. Guardar los registros y el estado de proceso del otro usuario (si se llevó a cabo el paso 6)

9. Determinar que la interrupción vino del disco

10. Corregir la tabla de páginas y las demás tablas de modo que indiquen que la página ya esta en memoria

11. Esperar que la CPU se asigne otra vez a este proceso

12. Restaurar los registros de usuario, el estado de proceso y la nueva tabla de páginas y reanudar la ejecución interrumpida

Page 19: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 19

Tiempo servicio fallo página

• Tiene tres componentes– Atender la interrupción de fallo de página

– Traer la página a la memoria

– Reiniciar los procesos

• Primera y última tarea podrían tomar entre 1 y 100 microsegundos cada una

• Tiempo intercambio:– promedio latencia disco duro: 15 microsgs

– tiempo de búsqueda: 8 milisgs

– tiempo de transferencia: 1 milisg

– total: 24 milisgs

• Tiempo total paginación: aprox. 25 milisgs• Solo se considera tiempo de servicio

– si hay una cola de procesos hay que considerar el tiempo de espera para que el dispositivo este libre

• Si tiempo acceso memoria es de 100 nanosegs, el tiempo de acceso efectivo es:

tae = (1-p) x (100) + p ( 25 milisegs)

(1-p) x 100 + p x 25,000,000

100 + 24, 999,900 x p

Page 20: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 20

Entonces ???

• Tiempo de acceso efectivo es directamente proporcional a la frecuencia de los fallos de página

• Si un acceso de cada 1000 causa un fallo de página, el tiempo de acceso efectivo será de 25 microsegs

¡¡¡ Desempeño se reduce en un factor de 250 a causa de

la paginación por demanda !!!

• Si se desea una degradación de menos del 10%, se necesita que:

110 > 100 + 25,000,000 x p

10 > 25,000,000 x p

p > 0.0000004

Para mantener en un nivel razonable la reducción del desempeño sólo se puede permitir fallos de página en menos de uno de cada 2,500,000 accesos a memoria

• Es importante mantener baja la frecuencia de fallos de página, de lo contrario el tiempo de acceso aumentará y frenará la ejecución de procesos,

• Ejemplos: disco fragmentado y poca RAM en Windows 95 vs área de swap en Linux

Page 21: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 21

El reemplazo de páginas

• Adoptan el enfoque: si no hay marcos libres, se busca uno ocupado pero que no se este usando y lo liberamos

• Un marco se libera escribiendo su contenido en el espacio de intercambio y modificando la tabla de páginas (y todas las demás) de tal forma que indiquen que la página ya no esta en la memoria

• La rutina de atención de fallos de página se modifica de la siguiente forma:1. Encontrar la página deseada en el disco

2. Hallar un marco libre

a. Si hay un marco libre usarlo

b. Si no, usar un algoritmo de reemplazo de páginas para escoger un marco víctima

c. Escribir la página víctima en el disco; modificar de manera acorde las tablas de páginas y de marcos

3. Leer la página deseada y colocarla en el marco recién liberado; modificar las tablas de páginas y de marcos

4. Reiniciar el proceso usuario interrumpido

• Si no hay marcos libres, se requieren dos transferencias de página (hacia afuera y hacia adentro), lo que duplica el tiempo de servicio

– solución: usar un bit de modificación o bit sucio

Page 22: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 22

Estructura tabla de páginas

Número de marco de página

Caching desactivado

Modificado

ReferenciadoProtección

Presente/ausente

caching: páginas asociadas a registros de dispositivosreferenciado: 1 cuando se hace una referencia a una página

para leer o escribirmodificado: recuperación marco, si página no ha sido

modificada no se escribe a discoprotección: tipo acceso permitido, (0 lec/esc, 1 solo lectura)presente/ausente: 1: entrada valida y puede ser utilizada

0: página no cargada en memoria

Page 23: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 23

Algoritmos de reemplazo de páginas y algoritmos de asignación de marco

• Dos aspectos a cuidar en la implementación de la paginación por demanda:

– desarrollar un algoritmo de asignación de marco

– desarrollar un algoritmo de reemplazo de páginas

• En el primero, si se tienen varios procesos en memoria, hay que decidir cuántos marcos se asignarán a cada uno

• En el último, si hay que reemplazar páginas hay que seleccionar cuales se reemplazarán

Page 24: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 24

Algoritmos de reemplazo de páginas

• ¿Cómo escoger un algoritmo de reemplazo específico?– En general lo que se busca es el algoritmo con la

frecuencia de fallos de página más baja

• Evaluación:– Se ejecuta con una serie específica de referencias

a memoria y se calcula el número de fallos de página

– serie específica: serie de referencias

– serie se puede generar en forma aleatoria o a partir del rastreo de un sistema dado

– también se necesita saber el número de marcos que se dispone

– a medida que aumenta el número de marcos, el número de fallos disminuye,

– la adición de memoria física incrementa el número de marcos

Page 25: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 25

Algoritmo Optimo

• Cuando ocurre fallo página cierto conjunto de páginas se encuentran en memoria

• En la siguiente instrucción se hará referencia a una de estas páginas (la página que contenga la dirección de uno de los operandos de la instrucción)

• Otras páginas no se usarán hasta 20, 200 o 1500 instrucciones más adelante

• Cada página se va a etiquetar con:

- Número de instrucciones a ejecutar antes de hacer la primera referencia a dicha página

• Principio algoritmo:

- Eliminar página con la máxima etiqueta

- Si una instrucción no va a ejecutarse durante 8 millones de instrucciones y otra página se usará hasta dentro de 6 millones: eliminar primera retrasa el fallo de página lo más posible

- Eliminar la página que más se va a tardar en ser referenciada

Página 1

Etiqueta: 10

Página 2

Etiqueta: 30

Página 3

Etiqueta: 5

Page 26: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 26

Algoritmo según el uso no tan reciente (NRU)

Computadoras tiene dos bits de estado asociados a cada página:

R: se activa si se hace referencia a la páginaM: se activa cuando se escribe en la página

Bits actualizados en cada referencia a memoria.Si tales bits no existen en hardware se pueden simular en software.Principio Algoritmo:

- Al iniciar un proceso el S.O. asigna 0 a R y M de todas las páginas- En forma periódica se limpia el bit R, (para distinguir páginas que no tengan referencia de las que sí).- Fallo de página: S.O. inspecciona todas las páginas y las divide en cuatro categorías, (según valores R y M ):

* caso 0: no referenciada, no modificada* caso 1: no referenciada, pero ha sido modificada* caso 2: se ha hecho referencia, pero no modificada* caso 3: se ha hecho referencia y ha sido modificada

Page 27: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 27

Algoritmo NRU elimina página de la primera clase no vacía con el número más pequeño, (número de clase).

Si todas tienen el mismo nivel se elimina el que llego primero

Hipótesis implícita:

Es mejor eliminar una página modificada sin referencia en al menos un intervalo de reloj, que una página en blanco de uso frecuente.

Ventajas

+Fácil de comprender

+Implantación eficiente

+Rendimiento que, aún sin ser el óptimo, sí es adecuado con mucha frecuencia.

Algoritmo NRU (cont)

Page 28: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 28

Algoritmo FIFO

Principio los primeros en entrar, son los primeros en salir.

S.O. tiene una lista de todas las páginas en memoria, siendo la primera página la más antigua y la última la más reciente.

En un fallo de página se elimina la primera página y se añade la nueva al final de la lista.

FIFO es muy pocas veces usada en su forma más pura.

página que secargó en 1er. lugar

(1a. página en salir)

A B C D E F H

0 3 7 8 12 15 18

página de cargamás reciente

(última página en salir)

Page 29: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 29

página que secargó en 1er. lugar

Algoritmo de la Segunda Oportunidad

Modificación simple de FIFOevita deshacerse de una página de uso frecuenteinspeccionando el bit R de la página más antigua.

si (R = 0) => página antigua y no utilizada se reemplaza en forma inmediata

si (R=1) => el bit se limpiala página se coloca al final de la listasu tiempo de carga se actualiza

A B C D E F G

0 3 7 8 12 15 18

B C D E F G A

3 7 8 12 15 18 20

página de cargamás reciente

Una variante del algoritmo es usar dos bits M y R para decidir si se da una segunda oportunidad

Page 30: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 30

Algoritmo de Reemplazo de Reloj

Mantener páginas en una lista circular con forma de reloj.Una manecilla apunta hacia la página más antigua.

B

C

D

E

F

G

A

H

I

K

J

L

Al ocurrir un fallo de página se inspecciona la página a la que apunta la manecilla.Si bit R = 0 => página se retira de memoria

se inserta nueva página en su lugar en el reloj manecilla avanza una posición

si no se busca una página con R = 0.Difiere del anterior sólo por la implementación

Page 31: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 31

Algoritmo de la menor uso reciente (LRU)

Páginas uso frecuente en las últimas instrucciones se utilizan con cierta probabilidad en las siguientes.

Es probable que las páginas que no hayan sido utilizadas durantemucho tiempo permanezcan sin uso por bastante tiempo.

Esto induce al siguiente algoritmo:

al ocurrir un fallo de página se elimina la página queno haya sido utilizada durante el tiempo más grande.

Nombre estrategia: LRU

LRU: realizable en teoría, no es barato.

Implementación: necesario mantener una lista de todas las páginas en memoria, en donde la página de uso más reciente este al pri ncipio de la lista y la de uso menos reciente al final.

Dificultad: la lista debe actualizarse en cada referencia a la memoria.

Búsqueda de la página en la lista, su eliminación y posterior traslado al frente de la misma NO puede ser una operación muy lenta.

Page 32: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 32

1a. Solución: caso más sencillo

Requiere de un contador de 64 bits, C, en hardware. se incrementa en forma automática después decada instrucción.

Cada entrada en tabla de páginas debe contener espacio necesario para almacenar el contador.

Después de cada referencia el valor actual de C se almacena en la entrada de la tabla de páginas correspondiente a la página a la que se hizo referencia.

Fallo de página:=> S.O. examina todos los contadores de la tabla de páginas y elige el mínimo, (i.e. página de uso más reciente).

Page 33: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 33

Ejemplo solución

Valor inicial cont = 0;

P0 P1 P2 P3

1 0 0 0

P0 P1 P2 P3

1 2 0 0

P0 P1 P2 P3

1 2 0 3

P0 P1 P2 P3

1 6 0 3

Página más recientemente usada: P1, (cont = 6)Página menos usada: P2 , (cont = 0)

cont = 1;

cont = 2;

cont = 3;

cont = 4;

Referencias: P0, P1, P3, P1

(4+2)

Page 34: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 34

2a. Solución: caso más sencillo

Máquina con n marcos para página, hardware LRU puede matriz de n x n, matriz inicializada en cero.

Referencia al marco khardware primero activa todos los bits del renglón k desactiva después todos los bits de la columna k.

En cualquier instante: renglón con valor binario mínimo es de uso menos frecuente, renglón con el siguiente valor más pequeño es el segundo de uso menos reciente, etc.

Page 35: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 35

Ejemplo de LRU con uso de una matriz

0 1 2 30 0 1 1 11 0 0 0 02 0 0 0 03 0 0 0 0

(a) (b) (d) (d)

0 1 2 30 0 0 1 11 1 0 1 12 0 0 0 03 0 0 0 0

0 1 2 30 0 0 0 11 1 0 0 12 1 1 0 13 0 0 0 0

0 1 2 30 0 0 0 01 1 0 0 02 1 1 0 03 1 1 1 0

(d) (f) (g) (h)

0 1 2 30 0 1 1 01 0 0 1 02 0 0 0 03 1 1 1 0

0 1 2 30 0 1 1 11 0 0 1 12 0 0 0 13 0 0 0 0

0 1 2 30 0 0 0 01 1 0 1 12 1 0 0 13 1 0 0 0

0 1 2 30 0 0 0 01 1 0 0 02 1 1 0 13 1 1 0 0

(i) (j)

0 1 2 30 0 1 0 01 0 0 0 02 1 1 0 13 1 1 0 0

0 1 2 30 0 1 0 01 0 0 0 02 1 1 0 03 1 1 1 0

Máquina con cuatro marcos, con referencias a las páginas en el orden: 0, 1, 2, 3, 2, 1, 0, 3, 2, 3

Después hacer referencia a la página 0 tenemos la situación siguiente:

Page 36: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 36

Simulación LRU en software

LRU utiliza hardware especial.

Si no existe tal hardware >>> solución implantar en software

Posibilidad usar algoritmo de uso no frecuente o NFUnecesita un contador en software asociado a c/páginavalor inicial = 0;

En cada interrupción de reloj, el S.O. examina todas las páginas de la memoria:

el bit R (0 o 1) se suma al contador(contadores son un intento por llevar un registro de la frecuencia de referencia de la página ).

Principal problema NFU: nunca olvida.

Page 37: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 37

Implementación LRU con pila

• Mantener una pila de números de página

• Cuando se hace referencia a una página se saca de la pila y se coloca arriba

• De este modo, en el tope de la pila siempre esta la página más recientemente utilizada

• Ya que es necesario sacar entradas de en medio de la pila, la mejor forma de implementar la pila es con una lista doblemente encadenada y con apuntadores al principio y al final

• Cada actualización es costosa, pero no hay que buscar la página a reemplazar, uno de los apuntadores señala la página LRU

• Implementación en software o microcódigo

• Ejemplo: serie referencias: 4 7 0 7 1 0 1 0 1 2 1 2 7 1 2

2 1 0 7 4

7 2 0 7 4

a b

pila antes de a pila después de b

Page 38: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 38

• Se podría mantener un contador del número de referencias que se han hecho a cada página

• Se tienen dos esquemas: LFU y MFU• Algoritmo LFU

– Eliminar páginas menos frecuentemente usadas (no confundir LFU con LRU)

– exige reemplazar la página con la cuenta más baja– una página que se ha usado activamente debe tener una

cuenta de referencias grande– algoritmo castiga a páginas que se usaron mucho durante

la fase inicial y luego no se vuelven a usar

• Algoritmo MFU– eliminar páginas más frecuentemente usadas – se basa en el argumento de que la página con la cuenta

más baja probablemente se acaba de traer a la memoria y todavía no se usa

• Ni el algoritmo MFU ni el LFU son comunes• La implementación de estos algoritmos es relativamente

costosa

Algoritmos de conteo

Page 39: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 39

• Muchos sistemas mantienen una reserva de marcos libres

• Cuando ocurre un fallo de página, se escoge un marco víctima igual que antes

– sin embargo la página deseada se coloca en un marco libre de la reserva antes de escribir la víctima en el disco

– este procedimiento permite al proceso reiniciarse lo más pronto posible, sin esperar a que la página víctima se escriba en el disco

– cuando la víctima termina de escribirse en el disco, su marco se añade a la reserva de marcos libres

• Una variante es mantener una lista de páginas modificadas

– siempre que dispositivo de paginación este ocioso, se escoge una página modificada y se escribe en el disco

– después de lo cual se apaga su bit de modificación

– esquema aumenta probabilidad de que una página este limpia cuando se le escoja para ser reemplazada, y no tenga que reescribirse

Algoritmo colocación páginas en buffers

Page 40: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 40

• Otra variantes es mantener una reserva de marcos libres, pero recordar cuál página estaba en cada marco– el contenido de un marco no se modifica cuando la

página que contiene se escribe en el disco

– entonces es posible reutilizar la página vieja directamente de la reserva de marcos libres si llega a necesitarse antes de que vuelva a usarse ese marco

– en tal caso, no habrá que efectuar E/S

– cuando ocurre un fallo de página, primero se determina si la página deseada está en la reserva de marcos libres

– so no es así, se escoge un marco libre y se coloca en él la nueva página

Page 41: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 41

Algoritmo de maduración

11000000 11100000 1111000010000000

00000000

10000000

00000000

10000000

10000000

10000000

01000000

00000000

11000000

01000000

11000000

00100000

10000000

01100000

10100000

01111000

01100000 10110000

00010000 10001000

01000000 00100000

10110000 01011000

01010000 00101000

Bits R para las páginas 0-5,

en la marca de reloj

Bits R para laspáginas 0-5,

en la marca de reloj

Página

Bits R para laspáginas 0-5, en

la marca de reloj

Bits R para las páginas 0-5,

en la marca de reloj

Bits R para las páginas 0-5,

en la marca de reloj

(a) (b) (c) (d) (e)

1 0 10 1 1 11 0 01 0 1 10 1 01 10 0 01 0 01 1 00 0

Page 42: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 42

Asignación de marcos

• Como repartir la cantidad fija de memoria libre entre los distintos procesos

• Si se tienen 93 marcos libres y dos procesos ¿cuantos marcos recibe cada proceso?

• Caso más sencillo: monousuario

– memoria 128K y páginas de 1K

– sistema operativo ocupa 35K => 93 marcos libres

– 93 marcos se colocan en lista de marcos libres

– proceso inicia y va a recibir los 93 marcos, cuando requiera un 94, se aplica un algoritmo de reemplazo

– al final proceso regresa los 93 marcos

– otras opciones: si sistema operativo no usa su espacio de buffers y tablas estos podrían apoyar la paginación de usuarios

– resumiendo estrategia: se asigna cualquier marco libre al proceso del usuario

Page 43: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 43

Número mínimo de marcos

• No es posible asignar más del total de marcos disponibles (a menos que se compartan las páginas)

• Existe un número mínimo de marcos que se pueden asignar

– número definido por la arquitectura del conjunto de instrucciones

– contener páginas a las que una sola instrucción pueda hacer referencia (evitar reiniciar instrucción)

– situación grave: arquitecturas que permiten múltiples niveles de indirección

– instrucción carga sencilla puede hacer referencia a una dirección indirecta (en otra página) que también puede hacer referencia a una dirección indirecta (en otra página)

– solución indirecciones: limitar los niveles de indirección, a través de un contador,

• Número mínimo de marcos por proceso esta definido por la arquitectura, mientras que el número máximo esta definido por la cantidad de memoria física disponible

• Menos marcos => más fallos de página

Page 44: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 44

Algoritmos de asignación

• Asignación equitativa:– La forma más fácil de dividir m marcos entre n

procesos es dar a cada proceso una porción de m/n marcos

– Por ejemplo 93 marcos y cinco procesos: cada proceso recibirá 18 marcos, los tres marcos restantes pueden usarse como reserva

• Asignación proporcional– diferentes procesos requieren diferentes cantidades

de memoria

– si un proceso (p1) requiere 10K y otro (p2) 127K y hay 62 marcos no es lógico asignar 31 marcos a cada uno

– se asigna memoria disponible a cada proceso según su tamaño, entonces:

m/S s a

a

m

sS

ps

ii

i

i

ii

ai proceso al asignados marcos número:

sdisponible marcos de total:

proceso para virtualmemoria tamaño:

Page 45: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 45

• Se debe ajustar ai de modo que sea un entero mayor que el número mínimo de marcos requeridos por el conjunto de instrucciones y que la sumatoria no exceda m

• En el ejemplo anterior:

10/137 x 62 = 4 (p1 tendrá 4 marcos)

127/137 x 62 = 57 (p2 tendrá 10 marcos)

• Los procesos comparen recursos de acuerdo a su necesidad

• Tanto en asignación equitativa como en proporcional la asignación a cada proceso puede variar según el nivel de multiprogramación

– si el nivel se incrementa cada procesos perderá algunos marcos para proporcionar al nuevo proceso

– si el nivel disminuye los marcos que se habían asignado al proceso que salió se pueden repartir

• Tanto en asignación equitativa como proporcional un proceso de alta prioridad se trata igual que uno de baja prioridad

• Para dar prioridad es posible emplear esquema asignación proporcional en el que la asignación de marcos no dependa de tamaños relativos de los procesos si no de su nivel de prioridad

Page 46: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 46

Asignación global o local

• Otro factor importante de como se asignan los marcos es el reemplazo de páginas

• Si hay varios procesos compitiendo por los marcos, es posible clasificar algoritmos de reemplazo en reemplazo global y reemplazo local

• Reemplazo global– permite a un proceso seleccionar un marco de reemplazo del conjunto

de todos los marcos, – incluso si ese marco esta asignado a otro proceso, un proceso puede

arrebatarle un marco a otro– por ejemplo, procesos con más prioridad– problema: un proceso no puede controlar su propia frecuencia de fallos

de página (proceso sólo selecciona marcos asignados a otros procesos)

• Reemplazo local– el número de marcos asignado a un proceso no cambia– el conjunto de páginas de un proceso que están en la memoria sólo

depende del comportamiento de paginación de ese proceso– podría obstaculizar ejecución de un proceso por no dejar que aproveche

otras páginas de memoria de poco uso

• Reemplazo global generalmente aumenta el rendimiento de un sistema, y es el más usado

Page 47: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 47

La segmentación

- Paginación = espacio direcciones unidimensional, (0..max)

- Dotar máquina de varios espacios independientes de direcciones, desde 0 hasta cierto máximo.

- Los distintos segmentos pueden tener longitudes distintas.

- La longitud de cada segmento puede ser distinta

- La longitud de un segmento puede variar durante su ejecución

- Acceso se hace en dos partes: número de segmento y una dirección dentro de este

- Un segmento puede tener la protección adecuada para el tipo de objeto almacenado

Page 48: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 48

Espacio de direcciones virtuales

Espacio de direcciones utilizado en este momento por la tabla de constantes

Tabla de símbolos

Texto fuente

Llamadas a la pila

La tabla de símbolos se ha encimado en la tabla del texto fuente

Espacio de direcciones asignado a la tabla de constantes

Tabla de constantes

árbol léxico

Libre

En un espacio unidimensional de direcciones con tablas crecientes, una tabla puede encimarse con otra.

Page 49: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 49

4 K

8 K

12 K

16 K

O

20 K

Tab

la d

e

sím

bolo

s

Seg

men

to0

4 K

8 K

12 K

O

Tex

to

fuen

te

Seg

men

to1

Seg

men

to2

Seg

men

to3

Seg

men

to4

Con

stan

tes

0

4 K

8 K

12 K

16 K

O

árbo

l lé

xico

4 K

8 K

12 K

O

Llam

adas

a

la p

ila

Un

a m

em

oria

se

gm

en

tad

a p

erm

ite q

ue

ca

da

ta

bla

cre

zca

o s

e r

ed

uzc

a e

n

form

a in

de

pe

nd

ien

te d

e la

s d

em

ás

Page 50: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 50

CPU ( s, d)

limite base

s

Tabla de Segmentos

d < limite

base+d

si

no

trap, error direccionamiento

Memoria Principal

La tabla de segmentos

Page 51: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 51

Ejemplo segmentación

subrutina stack

tabla de simbolosmain() del

programa principal

sqrt()

1400

2400

3200

4300

4700

5700

6300

6700

segmento 0

segmento 3

segmento 2

segmento 4

segmento 1Memoria Principal

limite base0 1000 14001 400 63002 400 43003 1100 32004 1000 4700

Tabla de Segmentos

Espacio direcciones virtuales

segmento 0

segmento 2

segmento 3

segmento 4

segmento 1

Page 52: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 52

Compartiendo Segmentos

Espacio direcciones virtuales de P1

Editor

segmento 0

datos 1

segmento 1

Espacio direcciones virtuales de P2

Editor

segmento 0

datos 2

segmento 1

limite base0 25286 430621 8550 90003

Tabla Segmentos P2

limite base0 25286 430621 4425 68348

Tabla Segmentos P1

43062

68348

72773

Memoria Virtual

90003

98553

editor

datos 1

datos 2

Page 53: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 53

Combinando paginación y segmentación

dirección virtual

STBR + s

d

s d

longitud basesegmento tabla-páginas

d < (long. seg.)

p d’no

trap

(base tabla) +p

MemoriaPrincipal

Tabla de páginaspara segmento s

dirección física

f f d’

Page 54: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 54

Esquema MULTICS

- Direcciones virtuales:18 bits de número de segmento16 bits de offset

- Necesarias igual número de entradas en tabla segmentos y segmentos (no debe de haber entradas vacías)

- Segmentos: palabras de 64K- Paginar los segmentos: cualquier marco vacío puede ser usado para una determinada página

Direcciones en memoria princi-pal de la tabla de paginación

Longitud del seg-mento (en páginas)

bits diversos

bits protección

Tamaño página:0: 1024 palabras1: 64 palabras

0: segmento esta paginado1: segmento no paginado

Número de segmento

Número de página

Ajuste dentro de la página

Descriptor del segmento:

Dirección virtual 34 bits:

18 9 1 1 1 3 3

18 6 10

Page 55: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 55

Interpretación de una dirección en MULTICS

Dirección lógica

s1 s2 d1 d2

s1

s2

d1

d2

tabla de páginasde la tabla

de segmentos páginade la tabla

de segmentos tabla de páginasdel segmentos

páginadel segmento

Page 56: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 56

Comparación paginación segmentación

Considerando Paginación Segmentación

¿Necesita saber el programador si está NO SIutilizando esta técnica?

¿Cuántos espacios lineales de direcciones 1 Muchosexisten?

¿Puede el espacio total de direcciones SI SIexceder el tamaño de la memoria física?

¿Pueden distinguirse los procedimientos y los datos, además de protegerse en NO SIforma independiente?

¿Pueden adecuarse con facilidad las NO SItablas con tamaños fluctantes?

¿Se facilita el uso de procedimientos NO SIcompartidos entre los usuarios?

Motorola 68000: paginaciónIntel 8086: segmentación

Page 57: La memoria virtualSistemas Operativos Diapo. No. 1 If its there and you can see it - its real If its not there and you can see it - its virtual If its

La memoria virtualSistemas Operativos

Diapo. No. 57

~ ~

~ ~

Mem

oria

par

a pá

gina

s 3

Mem

oria

par

a pá

gina

s 2

Mem

oria

par

a pá

gina

s 1

Mem

oria

par

a pá

gina

s 0

Núc

leo

de U

NIX

4.

3BS

D

Indi

ce d

e la

sig

uien

te e

ntra

da

Indi

ce d

e la

ent

rada

sup

erio

r

Núm

ero

de b

loqu

e en

dis

co

Núm

ero

del d

ispo

sitiv

o en

dis

co

Cód

igo

del o

rden

del

blo

que

Indi

ce e

n la

tabl

a de

pro

ceso

s

Tex

to /

dato

s / p

ila

Aju

ste

dent

ro d

el s

egm

ento

Libr

eE

n tr

ánsi

toS

olic

itand

o

Cer

rado

en

un

bit d

e

mem

oria

Ent

rada

s de

l map

a ce

ntra

l, un

o po

r

cada

mar

co d

e pá

gina

Ent

rada

del

map

a ce

ntra

l

Mem

oria

prin

cipa

l

~ ~~ ~