C7 memoria virtual_ssoo_mododecompatibilidad_

17
Sistemas Operativos Diaz Muñante Jorge 1 Administración de la Memoria Virtual Your picture here Sistemas Operativos Ciclo 2012-1 Profesor: Diaz Muñante Jorge Organización de la Memoria Memoria Real Un solo proceso Multiprogramación Particiones fijas 1 Colas Varias colas Particiones variables Memoria Virtual Multiprogramación Paginada Segmentada Segmentada + Paginada Antecedentes Fragmentación Interna Tamaño del proceso limitado por el tamaño de la partición Particiones Fijas Fragmentación Externa Tamaño del proceso limitado por el tamaño de la memoria real Particiones Variables Asignación de Memoria Tamaño total del proceso 4 Actividad de los procesos E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 :: :: :: :: :: E11 E12 E13 :: :: :: :: :: :: :: Manejo de errores En la practica rara vez se presentan todos los errores en una misma ejecución. E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 :: :: :: :: :: E11 E12 E13 :: :: :: :: :: :: :: 5 Actividad de los procesos V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 :: :: :: :: :: V11 V12 V13 V14 V15 :: :: :: :: :: Manejo de tablas, vectores u otra estructura de datos En la practica solo usamos pocos elementos de las estructuras de datos. Ejm: Vector (100x100) y usamos solo (10x10) V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 :: :: :: :: :: V11 V12 V13 V14 V15 :: :: :: :: :: 6 Actividad de los procesos Software base: Editor de texto En la practica usamos rara vez esta opción :: :: :: :: :: :: :: :: :: :: Conversión de Minusculas a Mayusculas

Transcript of C7 memoria virtual_ssoo_mododecompatibilidad_

Page 1: C7 memoria virtual_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 1

Administración de la Memoria Virtual

Your picture hereSistemas Operativos

Ciclo 2012-1

Profesor:

Diaz Muñante Jorge

Organización de la Memoria

Memoria Real

Un solo proceso Multiprogramación

Particiones fijas

1 Colas Varias colas

Particiones variables

Memoria Virtual

Multiprogramación

Paginada SegmentadaSegmentada + Paginada

Antecedentes

Fragmentación Interna

Tamaño del proceso limitado por el tamaño de la partición

Particiones Fijas

Fragmentación Externa

Tamaño del proceso limitado por el tamaño de la memoria real

Particiones Variables

Asignación de MemoriaTamaño total del proceso

4

Actividad de los procesos

E1 E2 E3 E4 E5

E6 E7 E8 E9 E10

:: :: :: :: ::

E11 E12 E13 :: ::

:: :: :: :: ::

Manejo de errores

En la practica rara vez se presentan todos los errores en una misma ejecución.

E1 E2 E3 E4 E5

E6 E7 E8 E9 E10

:: :: :: :: ::

E11 E12 E13 :: ::

:: :: :: :: ::

5

Actividad de los procesos

V1 V2 V3 V4 V5

V6 V7 V8 V9 V10

:: :: :: :: ::

V11 V12 V13 V14V15

:: :: :: :: ::

Manejo de tablas, vectores u otra estructura de datos

En la practica solo usamos pocos elementos de lasestructuras de datos.Ejm: Vector (100x100) y usamos solo (10x10)

V1 V2 V3 V4 V5

V6 V7 V8 V9 V10

:: :: :: :: ::

V11 V12 V13 V14V15

:: :: :: :: ::

6

Actividad de los procesos

Software base: Editor de texto

En la practica usamos rara vez esta opción

:: :: :: :: ::

:: :: :: :: ::

Conversión deMinusculas aMayusculas

Page 2: C7 memoria virtual_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 2

7

Principio de localidad

�Dening

– Principio de localidad

– Las referencias de los procesos tienden agruparse en zonas pequeñas del espacio direccionable. Estas zonas ademas tienden a cambiar en forma intermitente.

Referencias repetidas

Saltos esporadicos

working set:

initializaciondatos

Inicio delcodigo

Fase inicial del proceso

Cod. 1 Cod. 2 datos

Fase Principal del proceso

Fin delcodigo

Fase final del proceso

8

Premisa

� No se requiere que un proceso este almacenado en la memoria principal en forma completa

� Ventajas

– No hay limite para el tamaño de los procesos

– Aumenta el numero de procesos en memoria

– Disminución de las Operaciones e/s

9

Memoria Virtual

� Es la separación de la memoria lógica del usuario de la memoria física

• Una gran memoria virtual cuando solo se dispone de una memoria física mas pequeña

Jerarquía de Memoria

10

Pages Lines

Words

Registers

Main memory

Cache

Virtual memory

(transferred explicitly

via load/store) (transferred automatically

upon cache miss) (transferred automatically

upon page fault)

Memoria VirtualIlusion de una memoria de gran tamaño

Memoria realCosto razonable pero velocidad intermedia

Memoria Cache: Ilusion de una memoria muy rapida

La memoria virtualLa ilusión de la memoria infinita

Tabla Pagina

TLB

MemoriaFisica1 GB

Disco500GB

∞∞∞∞

MemoriaVirtual4 GB

Paginada Segmentada Segmentada + Paginada

La paginación

Proceso A Proceso A

Proceso A RAM

Página

Marco dePágina

- Consiste en dividir el espacio de direcciones virtual en unidades de tamaño invariante llamadas páginas .

- Los marcos de página son la correspondencia de una página en la memoria física, es decir, el espacio en la RAM donde realmente esta la página, teniendo ambos el mismo tamaño. De esta forma, todas las unidades de transferencia de datos desde y hacia la RAM se hacen en el tamaño de una página.

Page 3: C7 memoria virtual_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 3

13

Marco 0

Marco 1

Marco 2

Marco 3

Marco 4

Marco 5

Continuidad Artificial

Espacio de direccionamientológico

Espacio de direccionesreales

Pag 0

Pag 1

Pag 2

Pag 3

Pag 4

Pag 5Pag 6

Pag 7

MemoriaVirtual

Memoriareal

4k

Memoria Virtual con paginas

14

Configuracion de la memoria virtual

15

Memoria Virtual Estatica / Dinamica

16

Tabla de Paginas

(dire

ccio

nes

lógi

cas)

Memoria Virtual de Proceso P

Página 0 Marco 2

Página 1 Marco 0

Página 2 No está

Página 3 No está

Página 4 Marco 6

… No están

Página n-1

Marco 5

Página n Marco 4

Tabla de Páginas de PPágina 0

Página 1

Página 2

Página 3

Página n

Sistema

Operativo

Marco 0 Página 1

Marco 1 Libre

Marco 2 Página 0

Marco 3 Libre

Marco 4 Página n

Marco 5 Página n-1

Marco 6 Página 4

… Libres

Marco m Libre

Memoria Física Principal (RAM)

(dire

ccio

nes

Fís

icas

)

Memoria Secundaria Principal (Disco Duro)

0 1 2 3

4

P0

5

P1

6

P2

7

3P3

8

4P4

9

5P5

10

6P6

11

Pn-1

32

Pn

33 34 35

… … D-1 D

.

.

.

Sistema Operativo

.

.

.

Marco 1

Marco 3

Marco 7

Marco m

Lista de Marcos Libres

17

Fallo o falta de pagina

� El proceso trata de usar una pagina que no esta en memoria real.

� Pasos:

– 1. Referencia a una pagina, verifica su bit de validez (esta invalida = i)

– 2. Ocurre una trampa

– 3. SO busca un marco libre

– 4. Lleva la pagina del disco a la memoria

– 5. Actualiza la tabla de paginas

– 6. Reinicia la operación

18

CargarM

1Referencia

i

Tabla depaginas

Sistemaoperativo

3La pagina esta enmemoria auxiliar

libre

MemoriaFísica

4 Carga lapagina

5 Restablecetabla de pag.

Reinicia lainstrucción

6

2 Trampa

Falla o falta de Pagina

Page 4: C7 memoria virtual_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 4

Estructura tabla de páginas

Marco #

Execute

(ejecucion)x

Write (escritura)w

Read (lectura)r

r w x

validav

r w x v

referenciadare

v re

modificadam

re m

Shared-compartidas

m s

caching c

s c

super-paginasu

c su

process id pid

su pid

guard data

(extended) guard

gd

g

pid g gdg gd otherotros

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

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

modificada no se escribe a discoValida o : 1 entrada valida y puede ser utilizadapresente/ausente 0 página no cargada en memoria 20

Compartiendo paginas

PageTablePtrB pag #0

pag #1

pag #2

pag #3

pag #5

V,R

N

V,R,W

N

page #4 V,R

V,R,W

pag #4 V,R

Offset# PagDirecion Virtual (Proceso A):

PageTablePtrA pag #0

pag #1

pag #3

pag #4

pag #5

V,R

V,R

page #2 V,R,W

V,R,W

N

V,R,W

Offset# PagDireccion Virtual:Process B

Paginacompartida

Esta pagina fisica aparece en los 2

procesos

pag #2 V,R,W

21

Traduccion de Direcciones

Instruccion

Pagina #

Desplazamiento“d”

Dir.Virtual=(# pag, d) <traducir> Dir.Real =(# mar,d)

DVinstruccion

Memoria Real

DR

¿?

22

Memoria Virtual

0 1 2 3 4 5 6 7

d

Direccion Virtual = (3,10)

0 1 2 3 4 5 6 7

Memoria Real

d

Direccion Real = (5,10)

2k

Traduccion de direcciones

23

+

+a + pb

Tabla depaginas

a

p

Pagina p Desplazamientod

Dirección virtual

b + d

Direcciónreal

a

Registro baseTab.Pag

Traduccion de direcciones

24

Page # d

Dirección virtual

marco # d

b

Tabla depaginas

a

p

a

+

Programa

paginación

marcod

Memoriafísica

Traduccion de direcciones

Page 5: C7 memoria virtual_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 5

25Tabla de 1er nivel

m

Tablas de 2do nivel

p1 p2 d

Dirección virtual

m d

Direcciónreal

Tablas de 02 Niveles

26

Tabla de 2 nivelesDireccionfisica: OffsetMarco

Page #

4KB

10 bits 10 bits 12 bitsDireccionvirtual:

OffsetP2 indexP1 index

4 bytes

PageTablePtr

�Arbol de tablas�Tablas tam. fijo (1024 entradas)

4 bytes

27

Memoria asociativa

� Memoria especial - TLB

– (Translation Look-aside Buffers)

– acceso rápido: . 10-20% del tiempo de acceso a memoria

– pequeño tamaño: 64-1024 entradas

– solo contiene parte de la Tabla de Páginas

� Memoria de acceso por contenido

– Se compara con todas las páginas disponibles a la vez

– Si la página buscada no está hay que buscarla en la Tabla de Páginas en memoria principal

– Después del fallo se refresca la memoria asociativa

– El método es válido en función del porcentaje de éxito

• se basa en que casi siempre los programas acceden a direcciones consecutivas 28

p d

Dirección lógica

m d

Dirección real

acierto

fallam

Tabla de paginas

pagina marco

TLB

Traduccion de direcciones

29

Estrategias de Administración

� Estrategia de Obtencion: Determinan cuándo se debe cargar una página en memoria

– Paginación por demanda

• Se trae una página sólo cuando se hace referencia a ella

• El principio de cercanía reduce los fallos.

– Paginación previa

• Se traen a memoria varias páginas contiguas

• Mayor eficiencia de carga desde dispositivo secundario

30

Estrategias de Administración

�Estrategia de Colocacion:

� Determinan en donde se debe cargar una página en memoria

Page 6: C7 memoria virtual_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 6

31

Estrategias de Administración

�Estrategia de Reemplazo:

�¿ Qué página se reemplaza en memoria principal cuando se debe cargar otra y no hay espacio para ella?

32

Reemplazo de Pagina

1

Sacar la paginavictima

3

Introducir lapagina deseada

marco b.validz

m v

Tabla depaginas

4

Cambiar la tablapara la nueva

pagina

2

Cambiar ainvalido

/ 0 / i

victima

M.Real

mm v nueva

Cada página se va a etiquetar con:

Número de instrucciones antes de hacer la 1a. referencia a dicha página

Principio algoritmo:

eliminar página con la máxima etiqueta.

Página 1

Etiqueta: 10

Página 2

Etiqueta: 30

Página 3

Etiqueta: 5

Algoritmo Optimo

34

Algoritmo optimo

p3 p1 p2

5 inst10 inst.

30 inst.

Ejecuciónreemplazo

35

Algoritmo Optimo

Marcos de página

301

1

7

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

0

7

1

0

7

7

1

0

72

0

2

13 3

0

2

0

2

3

04

2

3

4

2

3

4

2

4

3 3

0

2

3

0

2

31

0

2

1

0

2

1

0

2

8 fallos de página

40

2

36

Algoritmo pésimo

� ¿cuál pagina involucra la peor decisión de reemplazo?

Page 7: C7 memoria virtual_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 7

37

Algoritmo FIFO

OptimoFuturo mas lejano

Ejecuciónreemplazo

p3 p4 p1 p2

FIFOPasado mas lejano

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.

Algoritmo FIFO

primera P1 P2 P3 P4 P5

última

P6

P3

P4

P5

P2

siguiente

P1P6

40

Algoritmo FIFO

Marcos de página

220

1

7

0

7

1

0

7

7

1

0

72

0

2

1

0

0

3

2

4

3 3

2

0

3

2

0

3

2

2

1

0

3

2

1

4

3

0

0

03

2

4

1

0

3

32

1

0

2

40

32

4

10

3

2

12 fallos de página

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

Algoritmo FIFO

�Por que podría ser bueno?

– Quizás la página que entró a memoria primero ahora no se necesita

�Por que podría ser malo?

– Quizás página esta en uso

• Las primeras paginas en llegar son del sistema operativo

• Los programas asignan los valores al inicio.

– Podría exponer anomalía de Belady

42

No paginado

Page 8: C7 memoria virtual_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 8

43

2

1

0

3210432104103210MarcoFIFO/3 Marcos

3

2

1

0

3210432104103210MarcoFIFO/4 marcos

Modificación simple de FIFO

evita 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 lista, su tiempo de carga se actualiza

Algoritmo de la Segunda Oportunidad

Algoritmo de la Segunda Oportunidad

Pág 1 1 Pág 2 1 Pág 3 0 Pág 4 0 Pág 5 0

En FIFO la Página 1 saldría

0Orden de entrada a la memoria

Pág 2 1 Pág 3 0 Pág 4 0 Pág 5 0 Pág 1 00

Pág 2 0Pág 3 0 Pág 4 0 Pág 5 0 Pág 1 0

Se mira la primera página (la más vieja). Tiene su bit de uso en 1, por lo tanto se le da otra oportunidad. Se setea en cero R, y se pasa a la cola

Idem al caso anterior

Al encontrarse una página con el bit en cero, se escoge para desalojo.

En el caso de que todas las páginas hayan tenido el bit de uso en cero, este algoritmo degrada en FIFO.

Mantener páginas en una lista circular con forma d e 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ág ina a la que apunta la manecilla.Si bit R = 0 => página se retira de memoria, se in serta nueva página en

su lugar en el reloj manecilla avanza una posiciónEsto continua hasta encontar una página con R = 0.Ejemplo de uso: Solaris

Algoritmo de Reemplazo de Reloj

Estado del buffer justo antes de un reemplazo

0

1

2

3

4

56

7

8

n

.

.

.

Pag 9uso = 1

Pag 19uso = 1

Pag 1uso = 0

Pag 45uso = 1

Pag 191uso = 1

Pag 556uso = 0

Pag 13uso = 0

Pag 67uso = 1

Pag 33uso = 1

Pag 222uso = 0

Puntero al marco siguiente

Pag727

Ejemplo: Algoritmo de Reemplazo de Reloj

Estado del buffer justo antes de un reemplazo

0

1

2

3

4

56

7

8

n

.

.

.

Pag 9uso = 1

Pag 19uso = 1

Pag 1uso = 0

Pag 45uso = 0

Pag 191uso = 1

Pag 556uso = 0

Pag 13uso = 0

Pag 67uso = 1

Pag 33uso = 1

Pag 222uso = 0

Puntero al marco siguiente

Pag727

Ejemplo: Algoritmo de Reemplazo de Reloj

Page 9: C7 memoria virtual_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 9

Estado del buffer justo antes de un reemplazo

0

1

2

3

4

56

7

8

n

.

.

.

Pag 9uso = 1

Pag 19uso = 1

Pag 1uso = 0

Pag 45uso = 0

Pag 191uso = 0

Pag 556uso = 0

Pag 13uso = 0

Pag 67uso = 1

Pag 33uso = 1

Pag 222uso = 0

Puntero al marco siguiente

Pag727

Ejemplo: Algoritmo de Reemplazo de Reloj

Estado del bufferdespués del reemplazo

0

1

2

3

4

56

7

8

n

.

.

.

Pag 9uso = 1

Pag 19uso= 1

Pag 1uso = 0

Pag 45uso = 0

Pag 191uso = 0

Pag 727uso = 1

Pag 13uso = 0

Pag 67uso = 1

Pag 33uso = 1

Pag 222uso = 0

Puntero al marco siguiente

Ejemplo: Algoritmo de Reemplazo de Reloj

51

Algoritmo del Reloj

Marcos de página

1

1

7

0

7

1

0

7

7

1

0

72

0

2

1

2

3 0

2

3

0

0

2

3

2

4

1

3

0

2

1

3

3

2

1

0

3 4

3

0

2

3

0

4

3

2

4

0

2

4

0

2

3

R1

1

1

7

0

1

R0

1

1

7

0

1

7

0

1

R0

0

1

7

0

1

R0

0

0

2

0

1

R1

0

0

2 0

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

52

Algoritmo del reloj

� Ejemplo: Cadena de referencia

0

1

2

R1

1

1

12 fallos de página

Marcos de página

1

1

7

0

7

1

0

7

7

1

0

72

0

2

1

2

3 0

2

3

0

0

2

3

2

4

1

3

0

2

1

3

3

2

1

0

3 4

3

0

2

3

0

4

3

2

4

0

2

4

0

2

3

2 0

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

Algoritmo según el uso no tan reciente

- En este método cada página contiene 2 bits que permite decidir cual página desalojar:

- R (bit solicitado): Se enciende cuando se realiza un acceso a esta página

- M (bit modificado): Se enciende cuando se escribe en la página.

- Se establecen así 4 clases de acuerdo al valor de los bits:

- Clase 0: No solicitado, No Modificado

- Clase 1: No solicitado, Modificado

- Clase 2: Solicitado, No Modificado

- Clase 3: Solicitado, Modificado

- El algoritmo escoge una página partiendo desde las con clase menor.

- El sistema operativo en cada interrupción de reloj cambia el estado del bit R, para poder identificar cuales páginas son accedidas constantemente durante el quantum.

54

NRU - Ejemplo

(0,0)a7

(1,0)c2

(0,1)d2

(1,0)b3

(1,1)b1

(0,0)d5

(1,0)a2

(1,1)c4

(0,0)a8

(0,1)a3

(0,0)b4

(1,1)d7

(1,1)a5

(1,0)d9

(0,1)c6

(0,0)d8

Clase 0 = {a7,d5,a8,b4,d8}

Clase 1 = {d2,a3,c6}

Clase 2 = {c2,b3,a2,d7}

Clase 3 = {b1,c4,d9,a5}

Page 10: C7 memoria virtual_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 10

Ejemplo NRU

Pag Bit R Bit M

0 0 0

1 0 0

2 0 0

3 0 0

Estado de la tabla de páginas en t0

Quantum

Pag Bit R Bit M

0 1 1

1 1 0

2 0 0

3 1 1

Estado de la tabla de páginas en t1

Durante el siguiente cuantum se hacen accesos a las páginas 0 y 1, luego se pide la página 4 que no esta presente y se provoca un Page Fault.

El SO apaga todos los bits R para poder determinar cuales de las páginas han sido ocupadas

Pag Bit R Bit M

0 0 1

1 0 0

2 0 0

3 0 1

Estado de la tabla de páginas en t2

QuantumPag Bit R Bit M

0 1 1

1 1 0

2 0 0

3 0 1

Estado de la tabla de páginas en t3

Durante el quantum se acceden las páginas 0, 1 y 3; y se escribe en las 0 y 3

Será desalojada

56

Algoritmo LRU

OptimoFuturo mas

lejano

Ejecuciónreemplazo

p3 p4 p1 p2

FIFOPasado mas

lejano

p3 p4

LRUPasado mas

reciente

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 durante mucho tiempo permanezcan sin uso por bastante tiempo.

� Esto induce al siguiente algoritmo:

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

� 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.

� Busqueda 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.

58

Algoritmo LRU

Cadena de referencia

Marcos de página

021

1

7

0

7

1

0

7

7

1

0

72

0

2

1 3 3

0

2

4

2 2

3

0

2

3

0

2

3

11 fallos de página

3

0

2 4

3

32

0

2

0 3

40 0

2

3

1

0

2

0

4

3

4 1

3

2

30

1

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

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

instrucción.

Cada entrada en tabla de páginas debe contener espa cio 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).

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

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 4 0 3

Página más recientemente usada: P 1, (cont = 4)Página menos usada: P 2 , (cont = 0)

cont = 1;

cont = 2;

cont = 3;

cont = 4;

Ejemplo solución

Page 11: C7 memoria virtual_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 11

Máquina con n márcos 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 menosfrecuente, renglón con el siguiente valor más peque ñoes el segundo de uso menos reciente, etc.

2a. Solución: caso más sencillo 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 márcos, 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:

63

Bancos libres en memoria

�Banco (pool) de marcos libres para poder leer inmediatamente las paginas fallidas, antes de haber escrito a disco la victima.

�Sustitución y mantenimiento de páginas limpias

– Cuando el disco está inactivo

�Se sustituyen las páginas limpias que no hay que escribir en disco.

– Periódicamente se buscan páginas para limpiar

�Utilizado en VAX-VMS como complemento al método FIFO.

�Linux desaloja paginas victimas antes de que se llene la memoria real.

64

• Se basa en la localidad

• Formado por las páginas recientemente accedidas

• Las páginas en uso se encuentran en el CdT

• El conjunto de trabajo varía con el tiempo

Número de páginas del almacenamiento

primario asignadas al proceso

Tiempo

Modelo del conjunto de trabajo

Modelo de conjunto de trabajo� Evolución del conjunto de trabajo

t

nº d

e pá

gina

s en

con

junt

o tr

abaj

o

Arranque en frío

Inicio nueva fase

Olvido de páginas de fase anterior

EstabilizaciónInicio nueva fase

Olvido de páginas de fase anterior

Estabilización

Estabilización

66

• El verdadero CdT lo forman las páginas que deben estar en el almacenamiento primario para la ejecución eficaz del proceso

• W = tamaño de la ventana del CdT

• ¿Cómo afecta el tamaño de W?

tt-w

w Tiempo de ejecución de un proceso

Las páginas referenciadas por el proceso durante

este intervalo constituye el conjunto de trabajos

W(t,w), del proceso

¿Cómo determinar el CdT?

Page 12: C7 memoria virtual_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 12

67

Ejemplo

�Ventana de 10 referencias

– Tamaño de conjunto de trabajo = 4

WS(t1,10) = {1, 2, 5, 7}2 1 5 7 7 7 7 7 5 1 6 2 9 3 7

68

Asignación global vs local

� Reemplazo global

– el marco a reemplazar se selecciona entre todo el conjunto de marcos

� Reemplazo local

– el marco a reemplazar se selecciona solo de su propio conjunto del proceso.

69

Desventajas global vs local

� Reemplazo global

– un proceso no puede controlar su propia tasa de fallos de paginas.

– No depende solo del comportamiento del proceso sino de todos.

� Reemplazo local

– impide a un proceso tener acceso a otras paginas no usadas.

� Por lo general el global brinda una mayor productividad.

70

Asignación de marcos

�¿cómo asignamos una cantidad fija de marcos a los distintos procesos?

�Se dispone de 93 marcos y llegan 02 procesos

–¿cuántos marcos obtiene cada proceso?

71

Algoritmos de asignación de marcos

� Asignación equitativa

– 93 marcos libres y llegan 05 procesos

– cada proceso recibira 18 marcos. Los 03 sobrantes son deposito de libres.

72

Algoritmos de asignación de marcos … cont

� Asignación proporcional

– px = tamaño del proceso x

– S = ∑ px

– ml = numero de marcos libres

– formula mpx=px / S * ml

– 62 marcos libres, p1 = 10k y p2 = 127k

– mp1 = 10 / 137 * 62 = 4 aprox.

– Mp2 = 127 / 137 * 62 = 57 aprox.

Page 13: C7 memoria virtual_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 13

73

Algoritmos por prioridades

� En un esquema de asignacion proporcional por “tamaño” nos podríamos basar en la “prioridad”.

� Permitir que un proceso de alta prioridad reemplace paginas de otro proceso de baja prioridad.

– El numero de marcos de un proceso de alta prioridad aumentaría en perjuicio de otro de baja prioridad.

74

Algoritmos de asignación de marcos

� Consideraciones

– en ambas técnicas puede variar dependiendo del nivel de multiprogramacion

– Si aumenta el nivel, cada proceso perdera algunos marcos para proporcionar a los nuevos.

– Si disminuye el nivel, los marcos liberados se distribuye entre los restantes.

Paginas Pequeñas

� Tabla de Paginas

� Fragmentación interna

Ej: Proceso de 25kb

Pagina = 2kb

T. Pag = 13 entradas

Pagina = 4kb

T. Pag = 7 entradas

Pagina = 1kb

T. Pag = 25 entradas

7 Páginas de 4Kb

Desperdicio: 3kb

13 Páginas de 2Kb

Desperdicio: 1kb

25 Páginas de 1Kb

Desperdicio: 0kb76

Procesador Tamaño Niveles Espacio

de página de paginación de usuario

Alpha 8 kb 3 4 Tb

ARM 26 bit 16 ó 32 Kb 2 Hasta 26 MB

ARM 32 bit 4 Kb 2 3 GB

IA64 4, 8, 16 ó 64Kb 3 10Exab

M68000 4 Kb 3 224MB

M68000 SUN3 8 Kb 2 3,75 Mb

MIPS 4 Kb 2 2 Gb

MIPS64 4 Kb 3 1 Petab

PARISC 4 Kb 2 ó 3 3 Gb

PowerPC 4 Kb 2 2 Gb

S390 4 Kb 2 2 Gb

SH 4 Kb 2 1,984 Mb

Sparc 4 Kb 3 3,75 Mb

Sparc SUN4 8 kb 3 3,75 Mb

Sparc 64 8 kb 3 16 Exab-16Gb

X86 4 Kb 2 ó 3 3 Gb

Linux

77

Hiperpaginacion

� La tasa de fallos de página es tan alta que el proceso pierde más tiempo cargando páginas que ejecutando.

� Si se produce vapuleo en todos los procesos el sistema queda parado.

� Solución

– no superar cierto grado de multiprogramación.

– proporcionar a cada proceso las páginas que necesita en cada momento.

78

Hiperpaginación

1

Sacar la paginavictima

2

Introducir lapagina deseada

victima

M.Real

mnueva

Es muyintensa

Page 14: C7 memoria virtual_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 14

79

Hiperpaginacion

Numero de procesos activos

Nivel de multiprogramación

Qué ocurre aquí?

%U

tiliz

ació

n de

CP

U o

Pro

duct

ivid

ad (

reqs

/seg

s)

- 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 unadirección dentro de este

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

La segmentación

81

Espacio de direcciones virtuales

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

Tabla de simbolos

Texto fuente

Llamadas a la pila

Tabla de constantes

árbol léxico

La t.simboloschoco contra la

texto fuente

82

Tab.Simb

Txtfuente

Cons-tan-tes

Arbollexic.

pila

0k

4k

8k

12k

16k

20k

24k

0k

4k

8k

12K

16k

0k

4k

8k

12K

16k

0k

4k

8k

12K

16k

20k

0k

4k

Seg0 Seg1 Seg2 Seg3 Seg4

Una mem. Segmentada permite a cada tablacrecer o encogerse con independencia

Proceso

Ejemplo de segmentacion

MMU

STBR

STLR

Base

Limit

OtrosTab de

Segmento

Seg 1(cod.) Seg 2

(datos)Seg 3(pila)

Memoria virtual

Segment # OffsetDireccion virtual

Fallo accesoA la mem

no

MemoriaFisica

Seg 2(datos)

Seg 1(cod.)

Seg 3(pila)

0x00

Como pagina:valida, modific.,

proteccion, etc.

offset <limite ?

Fragmentacion

Externa

Segmento Base + OffsetDirección física

Si

Espacio direcciones virtuales de P 1

Editor

segmento 0

datos 1segmento 1

Espacio direcciones virtuales de P 2

Editor

segmento 0

datos 2segmento 1

limite base0 25286 430621 8550 90003

Tabla Segmentos P 2

limite base0 25286 430621 4425 68348

Tabla Segmentos P 1

43062

68348

72773

Memoria Virtual

90003

98553

editor

datos 1

datos 2

Compartiendo Segmentos

Page 15: C7 memoria virtual_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 15

Segmentada + Paginada

86

0k

4k

8k

12k

16k

20k

24k

0k

4k

8k

12K

16k

0k

4k

8k

12K

16k

0k

4k

8k

12K

16k

20k

0k

4k

Seg0 Seg1 Seg2 Seg3 Seg4

Segmentada + Paginada

Proceso

87

Proceso120k

Segmento 040k

Segmento 110k

Segmento 270k

p0 p1

p0 p1

p0 p1

88

Caso de estudio: Linux

� Niveles de tablas en Linux

Nivel 1 Nivel2 Nivel3 Desplazamiento

#Página #Página

#Página

PGD

Tabla de páginas

Tabla de páginas

Tabla de páginas

Páginafísica

89

Caso de estudio: Linux

Memoria virtual

del proceso

vm_area_struct

Datos

Operaciones de memoria virtual

open ( )close ( )

swapout ()swapin ( )

vm_endvm_startvm_flagsvm_inodevm_ops

vm_next

vm_endvm_startvm_flagsvm_inodevm_ops

vm_next

vm_area_structcountpgd

mmap

Código

mm_struct

task_struct

mm

90

Caso de estudio: Linux

Marco 1Marco 2

Marco 0

Marco 3Marco 4

Memoria física

Marco 5

Libre

Libre

Libre

Libre

Libre

Marco 6Marco 7Marco 8

count

age

map_nr= 70

mem_map_tcount

age

map_nr= 4

mem_map_t

3

2

4

1

0

free_area

count

age

map_nr= 0

mem_map_t

map

Page 16: C7 memoria virtual_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 16

91

Caso de estudio: Linux

Apertura y proyección del programa sobrelas áreas de memoria virtual del proceso

Fallo de página

¿Acceso legal?

Fallo de página legal

¿Entrada vacía en la TP?

Acceso ilegal.Enviar señal SIGSEV alproceso

¿Dirección legal?

No

No

Traer páginadesde elarchivo en disco

Traer páginadesde elárea de intercambio

No

Paginaciónbajo

demanda

92

Caso de estudio: Linux

�Gestión del área de intercambio:

– Un demonio de intercambio (kswapd) se encarga de mantener suficientes marcos libres

– kswapd se ejecuta como un hilo del núcleo activándose en el arranque del sistema

– kswapd cada segundo comprueba si el número de marcos libres es demasiado bajo. Si es así, busca marcos que puedan ser descartados o sustituidos

– Algoritmo implementado en el demonio: algoritmo de aproximación al LRU con envejecimiento

93

Caso de estudio: Linux

�Técnica de envejecimiento de páginas:

– Al asignar un marco de página se le asocia por defecto edad 3

– Las páginas rejuvenecen al acceder a ellas (edad+3 hasta un máximo de 20)

– Cada vez que se ejecuta kswapd envejece las páginas en 1 si no se usan

– Las páginas víctimas para los intercambios se eligen de entre las páginas viejas (edad 0) y modificadas

– En función de la operación vm_ops->swapout de la región de memoria (vm_area_struct), la página víctima se lleva a disco.

94

Caso de estudio: Linux

– Si una página modificada se lleva a disco:� su entrada en la tabla de páginas se marca como inválida

� se incluye la información para su recuperación posterior y

� se libera, añadiéndola en la free_area

– Las páginas no modificadas no se sustituyen:� se descarta su contenido

� se marcan como libres, añadiéndolas en la free_area

– Si se recuperan suficientes páginas del proceso seleccionado, el demonio dormirá de nuevo

– Si no se liberan suficientes páginas del proceso actual, se continúa con el siguiente proceso

– El demonio empezará en la página siguiente en una nueva activación

95

Caso de estudio: Linux

Página 0

Página 1

Página 2

Página 3

Página 0

Página 1

Página 2

1

2

0

Tabla de páginas ABV BR BM

1 01 1

1 0

0 0

Tabla de páginas B

Proceso A

Proceso BBV BR BM

0 0

3

41 0

1 0

Página 0

Página 1

Página 3

Página 1

Página 2

Memoria física

Marco 0

Marco 1

Marco 2

Marco 3

Marco 4

Marco 5

96

Caso de estudio: Linux

Página 0

Página 1

Página 2

Página 3

Página 0

Página 1

Página 2

1

x

0

Tabla de páginas ABV BR BM

1 0

0 1

1 0

0 0

Tabla de páginas B

Proceso A

Proceso BBV BR BM

0 0

3

0 0

1 0

Página 0

Página 1

Página 3

Página 1

Memoria física

Edad de los marcos de página

7 9 0 3 0

0 1 2 3 4֠֠֠֠ kswapd

swap

1

x

2

1

0 2 4

free_area

Page 17: C7 memoria virtual_ssoo_mododecompatibilidad_

Sistemas Operativos

Diaz Muñante Jorge 17

97

Caso de estudio: W2K / XP

� El gestor de memoria virtual de W2k utiliza un algoritmo de reemplazo de páginas local tipo FIFO y paginación por demanda

� La política de reemplazo sustituye la página más antigua del conjunto de páginas del proceso que causó el fallo

� Conjunto de trabajo (WS): número de páginas que el proceso tiene garantizadas en memoria mientras se está ejecutando

Páginas nuevas Páginas antiguasConjunto

de

trabajo98

Caso de estudio: W2K / XP

�Al crearse un proceso se le asigna un tamaño mínimo del WS

�El gestor varía el tamaño de los WS de los procesos según los requirimientos de memoria:

– Incrementa la memoria libre del sistema (recorte automático del WS) de un proceso si su tamaño es mayor que el mínimo

– Incrementa el tamaño del WS hasta un máximo si el proceso genera fallos de página y la memoria no está demasiado llena

– Si el proceso requiere más páginas, se eliminan páginas de su WS empleando el algoritmo FIFO

99

Caso de estudio: W2K / XP

�Las páginas eliminadas del WS pueden volver a él rápidamente sin realizar lectura del disco

�Permanecen en memoria en uno de estos estados:

– Standby: el proceso utiliza el marco de página pero ha sido eliminado del WS

– Modificado: = Standby pero el proceso ha escrito en la página sin actualización de disco

Conjunto de trabajo

lista de páginas en standby o modificadas

100

Caso de estudio: W2K / XP

Lista demarcos

Standby

Escritor de marcos

modific.

Lista demarcos Modific.

Lista de

marcos libres

WS

de

procesos

Hilode marco

Cero

Lista de

marcos Cero

Lista de marcos erróneos

Fallosde

página “soft”

Sustitución en el WS

Finaliza el proceso

Lectura de página del disco o núcleoFallo de páginacero