ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

48
ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan Makuc Slide: 1

Transcript of ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Page 1: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

ICC243Sistemas Operativos

P06: Memoria

Prof. Jonathan MakucSlide: 1

Page 2: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 2 ] Prof. Jonathan Makuc

Temario ://

• Introducción

• Administración de Memoria Básica

• Intercambio

• Memoria Virtual

• Algoritmo de Reemplazo de Páginas

• Modelado de Algoritmos de Reemplazo de Páginas

Sistemas Operativos: Manejo de Memoria

Page 3: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 3 ] Prof. Jonathan Makuc

Administración de Memoria Básica ://

Sistemas Operativos: Manejo de Memoria

Monoprogramación sin intercambio ni paginación

- Solo 1 programa a la vez en la memoria- Cuando termina el programa puede ejecutarse el siguiente

Programa de Usuario

SO en RAM

0xFFF…

0

Programa de Usuario

SO en ROM

0xFFF…

0

Programa de Usuario

SO en RAM

Controladoresde disp en ROM

0xFFF…

0

Page 4: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 4 ] Prof. Jonathan Makuc

Administración de Memoria Básica ://

Sistemas Operativos: Manejo de Memoria

Multiprogramación con Particiones Fijas

- La RAM se divide en varios espacios de tamaños variables para poder contener procesos de largos distintos- Particiones pequeñas pueden ser utilizadas pro procesos interactivos dependientes del Input del usuario- Particiones más grandes son utilizadas por procesos mas intensivos en CPU

Partición 4

Partición 3

Partición 2

Partición 1

Sistema Operativo

800k

700k

400k

200k

100k

0

Partición 4

Partición 3

Partición 2

Partición 1

Sistema Operativo

800k

700k

400k

200k

100k

0

Page 5: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 5 ] Prof. Jonathan Makuc

Administración de Memoria Básica ://

Sistemas Operativos: Manejo de Memoria

Reubicación

- Cuando se utiliza el esquema de multiprogramación, se debe resolver el problema de resolver la dirección real de la instrucción que se está ejecutando.- Cada programa al enlazarse produce direcciones relativas dentro del código. Estas deben resolverse a direcciones absolutas dentro de la memoria tomando en cuenta la partición en que se encuentra. Esto se conoce como reubicación.

Partición 4

Partición 3

Partición 2

Partición 1

Sistema Operativo

800k

700k

400k

200k

100k

0

100

0

Procedimiento que se encuentra en la

dirección 100 relativa del

programa100 + 409.600 = 409.700

400k = byte 409.600

Page 6: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 6 ] Prof. Jonathan Makuc

Administración de Memoria Básica ://

Sistemas Operativos: Manejo de Memoria

Protección

- Al tener multiprogramación se genera el problema de poder asegurar que los programas de usuario no puedan tener acceso a los datos o código de otros procesos. Este es el problema de protección.

Partición 4

Partición 3

Partición 2

Partición 1

Sistema Operativo

800k

700k

400k

200k

100k

0

Registro Base

Registro Límite Al hacer un acceso a memoria, el SO toma el valor del registro base y lo suma a la dirección solicitada.

paddr = vaddr + regBase

Si el resultado no excede el valor del registro límite, entonces se permite el acceso.

paddr = dirección física (real)vaddr = dirección virtual

Page 7: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 7 ] Prof. Jonathan Makuc

Intercambio ://

Sistemas Operativos: Manejo de Memoria

Cuando los procesos que se están activos en un sistema sobrepasan en tamaño a la memoria disponible, los excedentes deben mantenerse en disco y traerse a la memoria en forma dinámica para que se ejecuten.El intercambio consiste en mover procesos completos desde la memoria a disco y viceversa. El proceso se trae a memoria principal, se ejecuta por un periodo de tiempo y luego se guarda en disco hasta que sea su turno nuevamente.

S.O.

A

S.O.

A

B

S.O.

A

B

C

S.O.

B

C

S.O.

B

C

D

S.O.

C

D

A

Memoria disponible

Page 8: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 8 ] Prof. Jonathan Makuc

Intercambio ://

Sistemas Operativos: Manejo de Memoria

Problemas:

• Los procesos en este esquema son de tamaño fijo

• Deja espacios entre procesos que son pueden ser utilizados. Este fenómeno se conoce como fragmentación externa, dado que se producen fragmentos de memoria inútiles afuera de los procesos.

• Dado que los programas se mueven de posición en el tiempo, el SO debe poder manejar un esquema de reubicación y protección más complejo que los modelos anteriores.

S.O.S.O.

A

S.O.S.O.

A

B

S.O.S.O.

A

B

C

S.O.S.O.

B

C

S.O.S.O.

B

C

D

S.O.S.O.

C

D

A

Page 9: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 9 ] Prof. Jonathan Makuc

Intercambio ://

Sistemas Operativos: Manejo de Memoria

S.O.

B

C

D

Compactación

- Consiste en mover los procesos hacia la parte baja de la memoria, agrupando los espacios libres de memoria. Así se logra poder colocar más procesos.

- El problema es que el proceso de compactación toma MUCHO tiempo.

S.O.

B

C

D

Page 10: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 10 ] Prof. Jonathan Makuc

Intercambio ://

Sistemas Operativos: Manejo de Memoria

S.O.

A

B

Asignación de memoria con procesos de tamaño variable

- Al tener procesos cuyo segmento de datos puede crecer el problema de la asignación de memoria se complejiza, pues el SO debe cuidar de dejar espacio para la expansión, de lo contrario se gastará mucho tiempo liberando espacio cada vez que se quiera más memoria.- El heap es el espacio de datos de un proceso que puede ir creciendo a medida que se ejecuta. El SO debe asignar algún espacio para que este pueda crecer, el cual no es ocupado de inmediato. Este efecto de desperdiciar memoria al interior del proceso se conoce como fragmentación interna.

Programa de B

Heap de B

Stack de B

Espacio libre propio de B

Page 11: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 11 ] Prof. Jonathan Makuc

Intercambio ://

Sistemas Operativos: Manejo de Memoria

Ubicación de un proceso dentro de la memoria

- Al momento de que se decide traer un proceso a memoria, o se esta partiendo uno nuevo, se debe escoger en que lugar disponible se le colocará.

Método del primer ajusteEl proceso se coloca en el primer lugar disponible de la memoria partiendo de la parte baja de la misma.

S.O.

Memoria RAM

0 100 300 600 800

A B D

C

S.O.

Memoria RAM

0 100 300 600 800

A BC

Page 12: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 12 ] Prof. Jonathan Makuc

Intercambio ://

Sistemas Operativos: Manejo de Memoria

Ubicación de un proceso dentro de la memoria

- Al momento de que se decide traer un proceso a memoria, o se esta partiendo uno nuevo, se debe escoger en que lugar disponible se le colocará.

Siguiente del primer ajusteEl proceso se coloca en la siguiente posición disponible donde el proceso quepa, desde la última ubicación que realizó. Si llega al final, comienza de nuevo en el cero.

S.O.

Memoria RAM

0 100 300 600 800

A B DC E

S.O.

Memoria RAM

0 100 300 600 800

A B DC

E

Page 13: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 13 ] Prof. Jonathan Makuc

Intercambio ://

Sistemas Operativos: Manejo de Memoria

Ubicación de un proceso dentro de la memoria

- Al momento de que se decide traer un proceso a memoria, o se esta partiendo uno nuevo, se debe escoger en que lugar disponible se le colocará.

Mejor AjusteEl proceso se coloca en el espacio libre que más se ajuste al tamaño.

F

S.O.

Memoria RAM

0 100 300 600 800

A B DC E

S.O.

Memoria RAM

0 100 300 600 800

A B DC E F

Page 14: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 14 ] Prof. Jonathan Makuc

Intercambio ://

Sistemas Operativos: Manejo de Memoria

Ubicación de un proceso dentro de la memoria

- Al momento de que se decide traer un proceso a memoria, o se esta partiendo uno nuevo, se debe escoger en que lugar disponible se le colocará.

Peor AjusteEl proceso se coloca en el espacio libre más grande disponible.

F

S.O.

Memoria RAM

0 100 300 600 800

A B DC E

S.O.

Memoria RAM

0 100 300 600 800

A B DC E F

Page 15: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 15 ] Prof. Jonathan Makuc

Memoria Virtual ://

Sistemas Operativos: Manejo de Memoria

Introducción

- Los programas realizan accesos a la memoria indicando direcciones virtuales (lugar donde creen esta el dato que requieren) a las cuales desean acceder. Estas direcciones conforman el espacio de direcciones virtuales del proceso, que es el conjunto de memoria que conceptualmente esta asociado al proceso.

- Las direcciones virtuales no pueden ser enviadas directamente a la memoria pues no corresponden a la verdadera posición. Estas son convertidas en direcciones físicas (posición real dentro del chip de RAM) por la MMU (Memory Management Unit - Unidad de Manejo de Memoria).

CPU

MMU RAM Discos

CPU envía direcciones virtuales a la MMU

MMU envía direcciones físicas a la memoria

Page 16: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 16 ] Prof. Jonathan Makuc

Memoria Virtual ://

Sistemas Operativos: Manejo de Memoria

Paginación

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

Proceso A Proceso A

Proceso A RAM

Página

Marco dePágina

Page 17: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 17 ] Prof. Jonathan Makuc

Memoria Virtual ://

Sistemas Operativos: Manejo de Memoria

Tabla de Páginas- La relación entre las paginas (espacio de direcciones virtual) y los marcos de páginas (memoria física) está dada por la Tabla de páginas. Esta se encuentra almacenada en la memoria RAM

X

2

3

X

7

X

X

0

5

X

X

6

4

X

1

X

(pagina 15) 60k – 64k56k – 60k52k – 56k52k – 48k48k – 44k44k – 40k40k – 36k36k – 32k32k – 28k28k – 24k24k – 20k20k – 16k16k – 12k

12k – 8k8k – 4k

(página 0) 4k – 0k

Es

pa

cio

De

Dir

ec

cio

ne

s V

irtu

al

2

3

7

0

5

6

4

1

32k – 28k28k – 24k24k – 20k20k – 16k16k – 12k12k – 8k8k – 4k4k – 0k

Mem

oria R

AM

Tabla de Páginas

Marco de Página

Página

Page 18: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 18 ] Prof. Jonathan Makuc

Memoria Virtual ://

Sistemas Operativos: Manejo de Memoria

Conversión de direcciones

- Al momento que un proceso realiza un acceso a memoria, se debe convertir la dirección virtual entrante en la dirección física, consultando la tabla de páginas. Para convertir se debe:

- Ubicar la página a la que pertenece la dirección virtual: vaddr / Tamaño Página (DIV ENTERA)- Ubicar el marco de página al que corresponde- Calcular el desplazamiento: vaddr – (N°Pag * Tamaño Página)- Sumar el desplazamiento a la dirección base del marco de página

Ejemplo: Dirección virtual (vaddr): 36777Tamaño de página: 4096b

Página = 36777 / 4096 (DIV ENTERA) = 8Marco de la página 8 = 0Desplazamiento = 36777 – (8 * 4096) = 4009

Dirección Física (paddr) = 0 * 4096 + 4009 = 4009

36864

(Pág. 8)

32768

0

4096

0desplazamiento

4009paddr

0

36777vaddr

Page 19: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 19 ] Prof. Jonathan Makuc

Memoria Virtual ://

Sistemas Operativos: Manejo de Memoria

Fallos de página

- En la tabla de páginas existe un bit de validez por cada página, que indica si esta está presente en la memoria principal o no. - Un fallo de página ocurre cuando se solicita una página del espacio de direcciones virtual y esta no tiene marco de página asignado, es decir, no tiene correspondencia en la memoria física.- Al ocurrir un fallo de página, la MMU emite una interrupción “Page Fault” provocando trap al sistema para poder manejar la situación- El sistema operativo toma el control, cargando la página desde el disco duro a la memoria reanudando el proceso luego de eso. Si no hay memoria disponible, se debe llevar uno o más marcos de páginas al disco para liberar espacio.

0

X

X

2

3

X

1

X

32k – 28k28k – 24k24k – 20k20k – 16k16k – 12k

12k – 8k8k – 4k4k – 0k

Es

pa

cio

De

Dir

ec

cio

ne

s V

irtu

al

2

3

0

1

16k – 12k12k – 8k8k – 4k4k – 0k

Mem

oria R

AM

Page 20: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 20 ] Prof. Jonathan Makuc

Memoria Virtual ://

Sistemas Operativos: Manejo de Memoria

0

X

X

2

3

X

1

X

32k – 28k28k – 24k24k – 20k20k – 16k16k – 12k

12k – 8k8k – 4k4k – 0k

Es

pa

cio

De

Dir

ec

cio

ne

s V

irtu

al

2

3

0

1

16k – 12k12k – 8k8k – 4k4k – 0k

Mem

oria R

AM

TRAP AL SISTEMA

OPERATIVO

Acceso dirección 27688

Hay marcosLibres?

0

X

2

3

X

1

X

2

3

0

1

X

Se carga la páginaa memoria

Se lleva una o máspáginas a disco

Proceso continua

si

no

Page 21: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 21 ] Prof. Jonathan Makuc

Memoria Virtual ://

Sistemas Operativos: Manejo de Memoria

Estructura de la tabla de Páginas

Tabla de Páginas

bit cache

bit solicitada

Bit modificada

Bits protección

Bit validez

NúmeroDe

MarcoDe

Página

Indica al sistema operativo si realiza cache de la página.Útil cuando la página contiene estados de dispositivos.

Indica si la página ha sido usada. Útil para ayudar al SO aelegir cuales páginas le conviene mandar a disco.

Indica si la página ha sido modificada desde que entró a la memoria. Ayuda al SO a determinar si debe guardarla al sacarla de la RAM.

Indica los permisos que se tienen sobre la página. 3 bits:R = permiso de lecturaW = permiso de escrituraX = permiso de ejecución

Indica si la página tiene un márco de página valido (esta en RAM)

Contiene el numero del marco de página donde está esta página. El valor no tiene importancia si el bit de validez esta en cero.

Page 22: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 22 ] Prof. Jonathan Makuc

Memoria Virtual ://

Sistemas Operativos: Manejo de Memoria

Tabla de Páginas dentro de la MMU

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

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

Pág Virtual Marco Validez

15 001 1

14 0

13 101 1

12 111 1

11 0

10 100 1

9 011 1

8 0

7 0

6 110 1

5 0

4 010 1

3 0

2 0

1 000 1

0 0

N° de Página Desplazamiento

DirecciónVirtual(vaddr)

DirecciónFísica

(paddr)

0110x0 = 6

Espacio de direccionesvirtual de 16bits(64kb)

Memoria de 32kb(15bits necesarios)

Page 23: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 23 ] Prof. Jonathan Makuc

Memoria Virtual ://

Sistemas Operativos: Manejo de Memoria

Tablas de Páginas Multinivel

TP1 TP2 Desplazamiento

32bits

10bits 10bits 12bits

Páginas de 4kb

Tabla de página de primer nivel

(…)1023

0

Tabla de página de

segundo nivel

A páginas(vaddr)

Page 24: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 24 ] Prof. Jonathan Makuc

Memoria Virtual ://

Sistemas Operativos: Manejo de Memoria

TLB: Translation Lookaside buffer

- El Búfer de consulta para traducción (TLB), contiene la misma estructura de la tabla de páginas. Contiene muy pocas entradas (8 – 64) con la información de las últimas páginas solicitadas.

- Acelera las consultas considerablemente pues busca simultáneamente en todas las entradas de la TLB la página solicitada. Si se encuentra, se reemplaza el numero de marco directamente. Si no esta, se produce una consulta ordinaria a la tabla de página, agregando la información a la TLB.

CPU

MMU

TLB

Consulta a laTabla de páginas

vaddr

FalloTLB

Encontrado en TLB

paddr

Page 25: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 25 ] Prof. Jonathan Makuc

Memoria Virtual ://

Sistemas Operativos: Manejo de Memoria

Tablas de páginas Invertidas

- Solución en los sistemas de 64bits donde el espacio de direcciones virtual es 264,

Ej: con páginas de 4kb (212) se requieren de 252 posicionessi cada entrada de la tabla de páginas requiere 8 bytes:23 * 252 = 255 = 3,6 * 1016 bytes

-Consiste en tener una entrada por cada marco de memoria real en lugar de una por cada página del espacio de direcciones virtual.

Tabla de páginas tradicional con las 264 entradas

256Mb en páginas de 4kb = 216 posiciones

216-1

0

Tabla de hash indexada por hash sobre pag viartual

Página Marco

Page 26: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 26 ] Prof. Jonathan Makuc

Memoria Virtual ://

Sistemas Operativos: Manejo de Memoria

Tablas de páginas Invertidas: Consideraciones

-Al estar ahora indexada por número de marco, no es posible buscar usando los bits superiores de la vaddr.

- Al buscar el marco al que corresponde la página se debe ir a mirar la memoria donde esta almacenada la Tabla de Páginas.

-Es necesario el uso de la TLB para poder agilizar el proceso.

Page 27: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 27 ] Prof. Jonathan Makuc

Algoritmos de Reemplazo de Páginas ://

Sistemas Operativos: Manejo de Memoria

Generalidades

- Al ocurrir un fallo de página, el sistema operativo debe cargar a memoria la página que contiene la dirección de memoria solicitada. Si no existe lugar disponible en la memoria, entonces se deberá desalojar algunas para hacer espacio.

- Desalojar páginas poco usadas es mas conveniente que desalojar otras más populares, pues es muy probable que se deban traer de vuelta las más utilizadas.

- Se debe tener el cuidado sobre que hacer con las páginas de acuerdo a si han sido modificadas o no. Una página no modificada se puede acceder desde su ubicación inicial en el disco. Una página modificada debe ser escrita a disco para no perderla.

RAM ?Swap

Eliminacion

Page 28: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 28 ] Prof. Jonathan Makuc

Algoritmos de Reemplazo de Páginas ://

Sistemas Operativos: Manejo de Memoria

Casos de desalojo de páginas

- Páginas No Modificadas, Solo Lectura: se eliminan pues pueden ser re-leídas desde su posición original en el disco. (Ej: segmento de codigo)

- Páginas Modificadas, que no han salido a swap: se escriben al swap para no perderlas (Ej: stack)

- Páginas No Modificadas, que han salido a swap: se verifica si la ubicación en swap es válida, si lo es, no elimina.

- Páginas Modificadas: se escriben a swap.

Page 29: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 29 ] Prof. Jonathan Makuc

Algoritmos de Reemplazo de Páginas ://

Sistemas Operativos: Manejo de Memoria

Algoritmo Óptimo

- Caso utópico en el cual se selecciona para desalojo la página que se referenciará más lejos en el tiempo, postergando así el fallo de página hasta el máximo.

- Imposible de Implementar pues supone el conocimiento de que páginas serán solicitadas por el proceso, a priori.

Página 1

Tiempos de referencia:

123, 1002, 2099, 4009, 10000

Página 2

Tiempos de referencia:

11, 20000, 22444, 22443

Página 3

Tiempos de referencia:

1000, 1001, 1002, 1003

Página 4

Tiempos de referencia:

500, 11000, 11001, 23000

Página 5

Tiempos de referencia:

123, 1002, 2099, 4009, 10000

Página Entrante

A desalojar

Page 30: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 30 ] Prof. Jonathan Makuc

Algoritmos de Reemplazo de Páginas ://

Sistemas Operativos: Manejo de Memoria

NRU: Not Recently Used – No usadas recientemente

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

Page 31: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 31 ] Prof. Jonathan Makuc

Algoritmos de Reemplazo de Páginas ://

Sistemas Operativos: Manejo de Memoria

NRU: Not Recently Used – No usadas recientemente

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

Page 32: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 32 ] Prof. Jonathan Makuc

Algoritmos de Reemplazo de Páginas ://

Sistemas Operativos: Manejo de Memoria

FIFO: First In First Out

- Simplemente se escoge para desalojo la página que entró primero a la memoria.

- Al ser un método mecánico sin mayor análisis, puede desalojar páginas muy utilizadas.

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

Pág 1 Pág 2 Pág 3 Pág 4

Pág 1 Pág 2 Pág 3

Pág 1 Pág 2

Pág 1

Pág 6 Pág 2 Pág 3 Pág 4 Pág 5

Pág 6 Pág 7 Pág 3 Pág 4 Pág 5

Pág 6 Pág 7 Pág 8 Pág 4 Pág 5

t0

t1

t2

t3

t4

t5

t6

t7

Memoria de 5 marcos

Page 33: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 33 ] Prof. Jonathan Makuc

Algoritmos de Reemplazo de Páginas ://

Sistemas Operativos: Manejo de Memoria

Second Chance – Segunda Oportunidad

- Modificación de FIFO que permite evitar el problema de desalojar una página que sea muy utilizada.

- Las páginas se mantienen ordenadas en el orden en que llegaron a la memoria, en una lista enlazada por ejemplo.

- Cada vez que se elige una página como candidato para desalojar, se mira su bit de uso (R).

- Si esta en 1, se apaga, se coloca la página al final y se sigue con la siguiente (dándole así una segunda oportunidad).

- Si esta en 0, se escoge esa página para el desalojo.

- A diferencia de NRU, el SO solo resetea el bit a cero cuando esta buscando una página para desalojar, y no en cada interrupción de reloj.

Page 34: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 34 ] Prof. Jonathan Makuc

Algoritmos de Reemplazo de Páginas ://

Sistemas Operativos: Manejo de Memoria

Second Chance – 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 0

0

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.

Page 35: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 35 ] Prof. Jonathan Makuc

Algoritmos de Reemplazo de Páginas ://

Sistemas Operativos: Manejo de Memoria

Tipo Reloj (Clock)

- Muy similar a Second Chance, también utiliza el bit de uso para entregar una segunda oportunidad a las páginas antes de desalojarlas. -Las páginas son colocadas en una lista enlazada circular que el sistema operativo va revisando secuencialmente como la manecilla de un reloj.

- Si la página tiene bit R = 1, lo apaga y sigue con la página siguiente.- Si la página tiene bit R = 0, la desaloja.

Pág 1 1

Pág 2 0

Pág 3 0

Pág 4 0

Bit R = 1, se apaga y se sigue con el

siguientePág 1 0

Pág 2 0

Pág 3 0

Pág 4 0

Bit R = 0Se desaloja la página

Page 36: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

2 0 4 3 1

2

0

1

4

3

100

150

120

40

60

Sistemas Operativos – ICC243 [ 36 ] Prof. Jonathan Makuc

Algoritmos de Reemplazo de Páginas ://

Sistemas Operativos: Manejo de Memoria

LRU: Least Recentely Used – Menos Recientemente Usada

- Algoritmo que busca desalojar la página que lleva mas tiempo sin usarse, tomando como base que las más usadas, seguirán siendo solicitadas en el futuro.- Se puede implementar a través de:

- Lista enlazada: el sistema mantiene una lista de las páginas en memoria. Cada vez que se referencia una página, se mueve el nodo al final de la lista. Al momento de ocurrir un fallo de página se escoge la primera página de la lista.

- Contador: El sistema mantiene un contador por página que se aumenta en cada interrupción de reloj. Al ocurrir un fallo de página se escoge la página con el contador con el menor valor.

2 0 1 4 3

2 0 4 3 1

Acceso página 1

Acceso página 5 fallo de página

2

0

1

4

3

100

0

120

40

60

Acceso página 1

En t=150

2

0

1

4

3

100

150

120

40

60

Acceso página 5

En t=160Página a desalojar

Página a desalojar

Page 37: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 37 ] Prof. Jonathan Makuc

Algoritmos de Reemplazo de Páginas ://

Sistemas Operativos: Manejo de Memoria

Working Set – Set de trabajo

- Empíricamente los procesos al ejecutarse no hacen referencia a todas sus páginas constantemente. Sucede que en cualquier fase de la ejecución el proceso exhibe una localidad de referencia, es decir, accede a un subconjunto pequeño de la totalidad de sus páginas

- Formalmente se denomina Conjunto de Trabajo al conjunto de páginas que está utilizando en un momento dado. Este no es fijo, y cambia periódicamente a medida que el proceso se ejecuta.

- Si no existe memoria disponible en el sistema para contener el conjunto de trabajo de un proceso, este generará muchos fallos de páginas en un número reducido de instrucciones. A este fenómeno se le denomina Thrasing o Hiperpaginación.

- El algoritmo Working Set se basa en lograr mantener en memoria las páginas que se consideran dentro del conjunto de trabajo para así reducir al máximo la cantidad de Page Faults.

- Para establecer el conjunto se puede usar uno de los siguientes métodos:- Páginas referenciadas en los k últimos accesos a memoria, aquellas que no están en el conjunto pueden ser desalojadas- k últimas páginas referenciadas, idem caso anterior- Usar el tiempo virtual de ejecución (tiempo real que ha ocupado el proceso en CPU) para determinar la edad de la página. Aquellas que sobrepasan una edad máxima T se consideran fuera del conjunto y pueden ser desalojadas. (RECOMENDADO)

- Se asume se tiene hardware que enciende los bits R y M adecuadamente.- El bit R se apara en cada interrupción de reloj, actualizando el tiempo de acceso a aquellas páginas cuyo bit R es 1.

Page 38: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 38 ] Prof. Jonathan Makuc

Algoritmos de Reemplazo de Páginas ://

Sistemas Operativos: Manejo de Memoria

Working Set – Set de trabajo

- Usando un set de trabajo con T = 50

Accesos a páginas 1,2,4

durante quantum2

0

1

4

3

50

50

60

15

60

Pág Ult Uso R

0

0

0

0

0

tVirtual = 80

WS = {0, 1, 2, 4}

2

0

1

4

3

50

110

110

15

110

Pág Ult Uso R

0

0

0

0

0

WS = {1, 2, 4}

tVirtual = 1102

0

1

4

3

50

50

60

15

60

Pág Ult Uso R

0

1

1

0

1

tVirtual = 110

WS = {0, 1, 2, 4} Páginas que pueden ser desalojadas

Page 39: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 39 ] Prof. Jonathan Makuc

Modelamiento del reemplazo de páginas ://

Sistemas Operativos: Manejo de Memoria

Anomalía de Belady

- Caso donde agregar marcos a la memoria de un proceso aumenta la cantidad de fallos de página, en lugar de disminuirlos.

- Ej: sean 2 sistemas con reemplazo de páginas por FIFO con 3 y 4 marcos respectivamente, con los accesos a páginas: 0, 1, 2, 3, 0, 1, 4, 0, 1, 2, 3, 4.

Secuencia de acceso 0 1 2 3 0 1 4 0 1 2 3 4

Mas reciente 0 1 2 3 0 1 4 4 4 2 3 3

0 1 2 3 0 1 1 1 4 2 2

Mas antigua 0 1 2 3 0 0 0 1 4 4

P P P P P P P P P 9 Page Faults

Secuencia de acceso 0 1 2 3 0 1 4 0 1 2 3 4

Mas reciente 0 1 2 3 3 3 4 0 1 2 3 4

0 1 2 2 2 3 4 0 1 1 3

0 1 1 1 2 3 4 0 1 2

Mas antigua 0 0 0 1 2 3 4 0 1

P P P P P P P P P P 10 Page Faults

Page 40: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 40 ] Prof. Jonathan Makuc

Modelamiento del reemplazo de páginas ://

Sistemas Operativos: Manejo de Memoria

Algoritmos de pila

- Se denomina cadena de referencias a la secuencia de páginas que solicita un proceso durante su ejecución.

- Se llaman algoritmos de pila aquellos cuya cadena de referencia de páginas que están en memoria para un numero m de marcos de memoria, es subconjunto de m + 1, es decir, en usando m + 1 marcos tenemos las misma páginas que con m más una adicional, considerando un arreglo M con tantas posiciones como páginas tiene el proceso.

Cadena de ref. 0 2 1 3 5 4 3 1

Paginas 0 2 1 3 5 4 3 1

En 0 2 1 3 5 4 3

Memoria 0 2 1 3 5 4

Páginas 0 2 1 1 5

En 0 2 2 2

Swap 0 0 0

P P P P P P P

Cadena de ref. 0 2 1 3 5 4 3 1

Paginas 0 2 1 3 5 4 3 1

En 0 2 1 3 5 4 3

Memoria 0 2 1 3 5 4

0 2 1 1 5

Páginas En 0 2 2 2

Swap 0 0 0

P P P P P P

Un marco más

M

Page 41: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 41 ] Prof. Jonathan Makuc

Modelamiento del reemplazo de páginas ://

Sistemas Operativos: Manejo de Memoria

Cadena de distancias

- En el caso de los algoritmos de pila, la referencia a una página puede abstraerse como la distancia desde la parte superior de la pila donde se colocó la página.

- La cadena de distancias lleva el conteo de la cantidad de veces que se ha accedido a páginas en cada una de las posibles distancias, considerando que

Cadena de ref. 0 2 1 3 5 4 3 1

Paginas 0 2 1 3 5 4 3 1

En 0 2 1 3 5 4 3

Memoria 0 2 1 3 5 4

Páginas 0 2 1 1 5

En 0 2 2 2

Swap 0 0 0

Página 3 no esta presente, por lo tanto

su distancia es Infinita

Ahora la página 3 estaba en la 3

posición antes de su referencia.

Distancia = 3

Página 1 estaba en la 4 posicion cuando fue

referenciada.Distancia = 4

C1 = 0

Cadena de Distancias

C2 = 0

C3 = 1

C4 = 1

C5 = 0

C6 = 0

C∞ = 6

Page 42: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 42 ] Prof. Jonathan Makuc

Modelamiento del reemplazo de páginas ://

Sistemas Operativos: Manejo de Memoria

Predicción de la tasa de fallos de página

- La cadena de distancias permite apreciar claramente la cantidad de fallos de página que habrán con una determinada cadena de referencias usando una cantidad de marcos de memoria. Utilizando la siguiente fórmula se puede obtener el vector F, que contiene la cantidad de fallos de página con las condiciones dadas:

Ej:

Cadena de Distancias

C1 = 4

C2 = 4

C3 = 2

C4 = 3

C5 = 0

C6 = 2

C∞ = 6

CCFn

mkkm

1

m = marcos de páginan = número de páginas del proceso

F1 = 17

F2 = 13

F3 = 11

F4 = 8

F5 = 8

F6 = 6

F∞ = 6

C2 + C3 + C4 + C5 + C6 + C∞

C3 + C4 + C5 + C6 + C∞

C4 + C5 + C6 + C∞

C5 + C6 + C∞

C6 + C∞

C∞

Fallos de página con 2

marcos

En este caso aumentar un marco no aporta a la disminución de fallos de página

Page 43: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 43 ] Prof. Jonathan Makuc

Aspectos de diseño de sistemas con paginación ://

Sistemas Operativos: Manejo de Memoria

Asignación local v/s global

- Cuando existen múltiples procesos ejecutándose, entonces nace el problema sobre si aplicar el algoritmo de reemplazo de páginas localmente sobre el conjunto de marcos asignados al proceso que genera el fallo de páginas, o globalmente sobre el total de los marcos de memoria.- El método local no permite que el conjunto de trabajo crezca, pudiendo fácilmente producir thrashing.- El método global permite ajustar el tamaño del working set. Introduce el uso de un nuevo algoritmo de reemplazo de páginas: PPF: Page Fault Frequency. - El algoritmo de Frecuencia de Fallos de Página analiza la cantidad de fallos de página por proceso, entregando más marcos a aquellos con altas tasas de Page Fault, y quitando a aquellos con bajo número de fallos.

Marcos de Página asignadosF

allo

s de

pág

ina

Nivel Máximo

Nivel Mínimo

A2

A0

A1

B1

B0

50

50

40

15

60

Pág Ult Uso

B4

B2

B3

C1

C0

30

70

60

25

25

Seleccionada usando política local

Ej: A requiere un marco adicional

Seleccionada usando política global

Grafico análisis PPF

Page 44: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 44 ] Prof. Jonathan Makuc

Sistemas Operativos: Manejo de Memoria

Tamaño de la página

- Es elegido por el sistema operativo, aun cuando el hardware pueda estar diseñado para trabajar con otro tamaño. Ej: SO con páginas de 1Kb, HW con páginas de 512b, el SO trabajará siempre con 2 páginas de HW por cada de software.

- Reducir el tamaño de la página, reduce la fragmentación interna pues se desperdicia menos memoria en la última página; sin embargo esto aumenta el tamaño de la tabla de páginas haciendo más engorro el trabajo con esta.

Aspectos de diseño de sistemas con paginación ://

Ej: Proceso de 25kb

13 Páginas de 2Kb 7 Páginas de 4Kb

Desperdicio: 1kb Desperdicio: 3kb

25 Páginas de 1Kb

Desperdicio: 0kb

Page 45: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 45 ] Prof. Jonathan Makuc

Sistemas Operativos: Manejo de Memoria

Tamaño de la página

- La memoria en juego corresponde al tamaño de la tabla de páginas y al desperdiciado en la última página del proceso.

- Asumiendo que en promedio se pierde la mitad de la última página, se puede modelar la cantidad esta cantidad de memoria a través de la siguiente fórmula:

Podemos minimizar entonces la cantidad de memoria en juego con el tamaño de página como parámetro derivando e igualando a cero, dado que la segunda derivada es negativa para cualquier valor de p entero positivo.

Aspectos de diseño de sistemas con paginación ://

2

p

p

es

Siendo: s = el tamaño promedio de los procesos e = el tamaño de 1 entrada de la tabla de páginas p = el tamaño de 1 página

02

12

p

esesp 2

Page 46: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 46 ] Prof. Jonathan Makuc

Sistemas Operativos: Manejo de Memoria

Páginas Compartidas

- Si se ejecuta varias veces el mismo proceso en memoria, es muy conveniente compartir las páginas de este, en lugar de duplicarlas.

- El problema más complejo es cuando se comparten páginas de datos, dado que 2 procesos de un mismo programa pueden tener datos diferentes por lo que se debe permitir esta distinción.

- El mecanismo utilizado por los sistemas *nix (unix, linux, bsd, etc) es el copy on write o copiar al escribir. Cuando se realiza la syscall fork para crear un proceso hijo:

- El SO crea una nueva tabla de páginas para este, pero no copia ninguna página, sino que apunta a las páginas del proceso padre. - A continuación se marcan todas las páginas de ambas tablas con read-only. - Al intentar uno de los procesos de modificar una página, se produce un trap al SO que duplica la página para que ambos procesos puedan trabajar de forma independiente, se quita el read-onlyy se continúa la ejecución.

Aspectos de diseño de sistemas con paginación ://

Page 47: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

Sistemas Operativos – ICC243 [ 47 ] Prof. Jonathan Makuc

Sistemas Operativos: Manejo de Memoria

Páginas Compartidas

Aspectos de diseño de sistemas con paginación ://

Proceso A

2

01

43

13627

Pág Marco R00111

Proceso Hijo de A

2

01

43

13627

Pág Marco R00000

fork

Proceso A

2

01

43

13627

Pág Marco R00000

Proceso Hijo de A

2

01

43

136107

Pág Marco R00010

El proceso hijo de A intenta de escribir en la página 3. El SO

duplica la página en otro marco y permite la modificación

Page 48: ICC243 Sistemas Operativos P06: Memoria Prof. Jonathan MakucSlide: 1.

IET110Sistemas Operativos

P06: Memoria

Prof. Jonathan MakucSlide: 48