La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

1 Tema 12: Memoria Virtual Sistemas Operativos (Tema 13 en apuntes prof. Rovayo)

Presentaciones similares


Presentación del tema: "1 Tema 12: Memoria Virtual Sistemas Operativos (Tema 13 en apuntes prof. Rovayo)"— Transcripción de la presentación:

1 1 Tema 12: Memoria Virtual Sistemas Operativos (Tema 13 en apuntes prof. Rovayo)

2 2 Índice: 1.Introducción 2.Elementos de análisis 3.Criterios de sustitución de páginas 4.Algoritmos de pila 5.Memoria virtual y multiprogramación 6.Otros aspectos de la memoria virtual 2 Tema 12: Memoria Virtual

3 3 Índice: 1.Introducción 2.Elementos de análisis 3.Criterios de sustitución de páginas 4.Algoritmos de pila 5.Memoria virtual y multiprogramación 6.Otros aspectos de la memoria virtual 3 Tema 12: Memoria Virtual

4 44 1. Introducción Tema 12: Memoria Virtual  Idea de partida: carga de páginas bajo petición  Más simple que carga de segmentos  ¿Cuándo se carga una página?  Cuando hace falta  ¿Dónde se carga?  En cualquier marco libre  ¿Y si no queda ningún marco libre?  Se elige una página y se reemplaza

5 5 Índice: 1.Introducción 2.Elementos de análisis 3.Criterios de sustitución de páginas 4.Algoritmos de pila 5.Memoria virtual y multiprogramación 6.Otros aspectos de la memoria virtual 5 Tema 12: Memoria Virtual

6 66 2. Elementos de análisis Tema 12: Memoria Virtual  Dado un criterio de sustitución,  ¿es bueno? ¿es malo?  Comparado con otro, ¿cuál es mejor? ¿cuánto mejor?  Herramientas a nuestra disposición:  Cadenas de referencias  Índices de valoración  Curva paracorde  Criterio de localidad

7 77 2. Elementos de análisis Tema 12: Memoria Virtual Cadenas de referencia  Definición: secuencia de páginas referidas por un proceso  Cálculo: supongamos que un proceso hace los siguientes accesos a memoria (pagina/despl.): 0/0/0,0/2/2,0/6/6,0/8/8,1/0/0,1/1/1,1/4/4,0/8/8,2/15,2/18,2/15,2/18,255/32,255/36,2/15…0, 1, 0, 2, 255, 2…  Obtención:  Trazas de programas: ¡complicado!  Simulación

8 8  : Número de fallos de página con m marcos 8 2. Elementos de análisis Tema 12: Memoria Virtual Índices de valoración  Sirven para medir las prestaciones de los criterios  Todas ellas referidas a una cadena de referencias  : Tasa de fallos de página ¡En los m primeros fallos no interviene el criterio de sustitución! ¿Y eso es mucho?  : Tasa de fallos de página en caliente ¡NO SÉ DE DÓNDE ﻵﺵ ф    SACAR A !  : Número de fallos de página en caliente

9 99 2. Elementos de análisis Tema 12: Memoria Virtual Curva paracorde  Representación del número de fallos de páginas para una cadena de referencias, frente al número de marcos utilizados  Sea p= número de páginas (distintas) en cadena de referencias F(m) m=pm=1 m F(p)=p

10 10 2. Elementos de análisis Tema 12: Memoria Virtual Principio de localidad  Localidad espacial:  Si una página es accedida es muy probable que se acceda eventualmente a una página próxima a ella  Localidad temporal:  Si una página es accedida en un instante de tiempo, es muy probable que en el futuro inmediato se vuelva a ser accedida F(m) m=pm=1 m referencias aleatorias referencias localizadas

11 11 Índice: 1.Introducción 2.Elementos de análisis 3.Criterios de sustitución de páginas 4.Algoritmos de pila 5.Memoria virtual y multiprogramación 6.Otros aspectos de la memoria virtual 11 Tema 12: Memoria Virtual

12 12 3. Criterios de sustitución Tema 12: Memoria Virtual 1.Página óptima (OPT, MIN) 2.Página pésima (MAX) 3.Página usada más recientemente (MRU) 4.Sustitución aleatoria 5.Sustitución por orden de carga (FIFO) 6.Página no usada recientemente (NRU) 7.Página usada menos frecuentemente (LFU) 8.Página usada menos recientemente (LRU) 9.Aproximación discreta a LRU 10.Sustitución por envejecimiento Criterios de laboratorio

13 13 3. Criterios de sustitución Tema 12: Memoria Virtual 1.Página óptima (OPT, MIN) 2.Página pésima (MAX) 3.Página usada más recientemente (MRU) 4.Sustitución aleatoria 5.Sustitución por orden de carga (FIFO) 6.Página no usada recientemente (NRU) 7.Página usada menos frecuentemente (LFU) 8.Página usada menos recientemente (LRU) 9.Aproximación discreta a LRU 10.Sustitución por envejecimiento

14 14 3.1 Página óptima (OPT o MIN)  Criterio: expulsar la página que va a tardar más tiempo en volver a ser referida  Implica conocimiento de futuro: no implementable en la práctica.  Utilidad: comparación con otros criterios  Ningún criterio puede dar mejores resultados que éste Tema 12: Memoria Virtual F(m) m=pm=1 m F(p)=p

15 15 3.1 Página óptima (OPT o MIN) Tema 12: Memoria Virtual Ejemplo de traza  Cadena de referencias: 0, 1, 2, 3, 0, 1, 4, 0, 1, 2, 3, 4  Nº de marcos: 3 Marcos cadena ref: 0 1 2 3 0 1 4 0 1 2 3 4 0 AF 0 1 0 1 2 0 3R2 1 3 0 1 3 0 1 3 0 1 4 4R3 0 1 4 0 1 4 2 1 4 2R0 2 3 4 3R1 2 3 4

16 16 3. Criterios de sustitución Tema 12: Memoria Virtual 1.Página óptima (OPT, MIN) 2.Página pésima (MAX) 3.Página usada más recientemente (MRU) 4.Sustitución aleatoria 5.Sustitución por orden de carga (FIFO) 6.Página no usada recientemente (NRU) 7.Página usada menos frecuentemente (LFU) 8.Página usada menos recientemente (LRU) 9.Aproximación discreta a LRU 10.Sustitución por envejecimiento

17 17 3.2 Página Pésima (MAX)  Criterio: expulsar la página que va a tardar menos tiempo en volver a ser referida  Implica conocimiento de futuro: no implementable en la práctica.  Utilidad: comparación con otros criterios  Ningún criterio puede dar peores resultados que éste Tema 12: Memoria Virtual F(m) m=pm=1 m F(p)=p MAX MIN

18 18 3.2 Página Pésima (MAX) Tema 12: Memoria Virtual Ejemplo de traza  Cadena de referencias: 0, 1, 2, 3, 0, 1, 4, 0, 1, 2, 3, 4  Nº de marcos: 3 0 1 2 3 0 1 4 0 1 2 3 4 0 AF 0 1 0 1 2 3 3R0 1 2 3 0 2 3 1 2 3 4 2 4R1 3 4 0 1 4 0 1 2 0 2R4 1 2 3 3R0 4 2 3 0R11R00R21R34R1

19 19 3. Criterios de sustitución Tema 12: Memoria Virtual 1.Página óptima (OPT, MIN) 2.Página pésima (MAX) 3.Página usada más recientemente (MRU) 4.Sustitución aleatoria 5.Sustitución por orden de carga (FIFO) 6.Página no usada recientemente (NRU) 7.Página usada menos frecuentemente (LFU) 8.Página usada menos recientemente (LRU) 9.Aproximación discreta a LRU 10.Sustitución por envejecimiento

20 20 3.3 Página usada más recientemente (MRU)  Criterio: expulsar la página que hace menos tiempo que se ha usado  Aproximación implementable en la práctica de criterio MAX  Utilidad: comparación con otros criterios Tema 12: Memoria Virtual F(m) m=pm=1 m F(p)=p MAX MIN MRU

21 21 3.3 Página usada más recientemente (MRU) Tema 12: Memoria Virtual Ejemplo de traza  Cadena de referencias: 0, 1, 2, 3, 0, 1, 4, 0, 1, 2, 3, 4  Nº de marcos: 3 0 1 2 3 0 1 4 0 1 2 3 4 0 AF 0 1 0 1 2 0 3R2 1 3 0 1 3 0 1 3 0 4 3 4R1 0 4 3 1 4 3 2 4 3 2R1 2 4 3 2 4 3 1R0

22 22 3. Criterios de sustitución Tema 12: Memoria Virtual 1.Página óptima (OPT, MIN) 2.Página pésima (MAX) 3.Página usada más recientemente (MRU) 4.Sustitución aleatoria 5.Sustitución por orden de carga (FIFO) 6.Página no usada recientemente (NRU) 7.Página usada menos frecuentemente (LFU) 8.Página usada menos recientemente (LRU) 9.Aproximación discreta a LRU 10.Sustitución por envejecimiento

23 23 3.4 Sustitución aleatoria  Criterio: expulsar una página al azar  Algoritmo de implementación trivial  Utilidad: Si algún criterio da resultados similares a éste: porquería de criterio Tema 12: Memoria Virtual F(m) m=pm=1 m F(p)=p MAX MIN MRU

24 24 3. Criterios de sustitución Tema 12: Memoria Virtual 1.Página óptima (OPT, MIN) 2.Página pésima (MAX) 3.Página usada más recientemente (MRU) 4.Sustitución aleatoria 5.Sustitución por orden de carga (FIFO) 6.Página no usada recientemente (NRU) 7.Página usada menos frecuentemente (LFU) 8.Página usada menos recientemente (LRU) 9.Aproximación discreta a LRU 10.Sustitución por envejecimiento

25 25 3.5 Sustitución por orden de carga (FIFO)  Criterio: expulsar la página que más tiempo lleva cargada  Fundamento: Ejecución secuencial, luego las páginas se cargan, se usan, y se dejan de usar  Ventajas:  Fácil implementación Tema 12: Memoria Virtual primera P1P2P3P4P5 última P6 P3 P4 P5 P2 siguiente P1P6

26 26 3.5 Sustitución por orden de carga (FIFO)  Inconveniente: malos resultados  Que las páginas “dejarán de ser necesarias” no implica “ya no son necesarias”  Las más usadas tienden a permanecer más tiempo en memoria → son las atacadas  Anomalía de Belady Tema 12: Memoria Virtual 012301401234 0 AF 0 1 0 1 2 3 3R0 1 2 3 0 2 3 0 1 4 0 1 4R3 4 0 1 4 0 1 4 2 1 2R0 4 2 3 3R1 4 2 3 0R11R2 9 Fallos

27 27 3.5 Sustitución por orden de carga (FIFO) Tema 12: Memoria Virtual 012301401234 000000444433 11111100004 2222221111 333333222 ¡10 Fallos! AF 1R2 0R1 3R44R0 2R34R0 AF F(m) m

28 28 3. Criterios de sustitución Tema 12: Memoria Virtual 1.Página óptima (OPT, MIN) 2.Página pésima (MAX) 3.Página usada más recientemente (MRU) 4.Sustitución aleatoria 5.Sustitución por orden de carga (FIFO) 6.Página no usada recientemente (NRU) 7.Página usada menos frecuentemente (LFU) 8.Página usada menos recientemente (LRU) 9.Aproximación discreta a LRU 10.Sustitución por envejecimiento

29 29 3.6 Página no usada recientemente (NRU)  Criterio: expulsar una página que lleve algún tiempo sin usarse  Fundamento: Por principio de localidad, no hay motivos para pensar que vaya a ser necesaria en el futuro inmediato  Métodos:  Forma general  Segunda oportunidad  Método del reloj  Tercera oportunidad (método Multics) Tema 12: Memoria Virtual

30 30 3.6 Página no usada recientemente (NRU) Forma general  En tabla de páginas:  Bit R (o A): página accedida  Bit M (o D): página modificada  Si hardware no proporciona estos bits, pero proporciona protección de páginas→ implementación por software  Cuatro tipos de página en función bits R y M Tema 12: Memoria Virtual Marco PRM 8100 1204101 12110 32111 ………… 0 1 2 3 1 4 2 3  Inconvenientes:  ¿Cuál página quito?

31 31 3.6 Página no usada recientemente (NRU) Segunda oportunidad  Lista ordenada por orden de carga  Ante una sustitución, primera candidata es la más antigua  Si esta página tiene bit R=1 Se pone bit R a 0 Se pasa al final de la lista (recibe su segunda oportunidad)  Si esta página tiene bit R = 0 → ¡Víctima! Tema 12: Memoria Virtual primera P1P2P3P4P5 última r=1r=0 r=1r=0

32 32 3.6 Página no usada recientemente (NRU) Método del reloj  Mismo algoritmo anterior, implementado con una lista circular Tema 12: Memoria Virtual primera P1 P2 P3 P4 P5 r=1 r=0 r=1 r=0 P6 r=1

33 33 3.6 Página no usada recientemente (NRU) Tercera oportunidad (método Multics)  Lista ordenada por orden de carga  Ante una sustitución, primera candidata es la más antigua  Si esta página tiene bit R=1 Se pone bit R a 0 Se pasa al final de la lista (recibe su segunda oportunidad)  Si esta página tiene bit M=1 Se le pone un bit M’ a 1 y se pone bit M a 0 Se pasa a al final de la lista (recibe su tercera oportunidad) Tema 12: Memoria Virtual primera P2P3P4P5P1 última m=1m=0m=1 m=0 r=0 r=1r=0

34 34 3. Criterios de sustitución Tema 12: Memoria Virtual 1.Página óptima (OPT, MIN) 2.Página pésima (MAX) 3.Página usada más recientemente (MRU) 4.Sustitución aleatoria 5.Sustitución por orden de carga (FIFO) 6.Página no usada recientemente (NRU) 7.Página usada menos frecuentemente (LFU) 8.Página usada menos recientemente (LRU) 9.Aproximación discreta a LRU 10.Sustitución por envejecimiento

35 35 3.7 Página usada menos frecuentemente (NRU)  Criterio: expulsar la página que se haya usado menos veces  Fundamento: Si la página se usa poco, es probable que no haga falta  Implementación: complicada  ¡Contar accesos implica que un contador debe incrementarse con cada acceso a memoria!  Implementación aproximada:  Contador de periodos en que página ha sido usada Tema 12: Memoria Virtual Mmm… no sé yo, eh? 0 0 0 0 … MarcoR… 80… 12040… 120… 320… ……… 1 2 3 0 t T 1 0 0 1 … MarcoR… 81… 12040… 120… 321… ……… 2 1 0 1 … MarcoR… 81… 12041… 120… 320… ……… 3 1 1 1 … MarcoR… 81… 12040… 121… 320… ……… 4 2 2 1 … MarcoR… 81… 12041… 121… 320… ………

36 36 3.7 Página usada menos frecuentemente (NRU)  Inconvenientes: malos resultados  Da misma importancia a pasado remoto que a pasado reciente: Una página recién cargada hará falta, pero no ha tenido oportunidad de usarse todavía: será una víctima propicia Una página que hace mucho tiempo que se usó y se ha dejado de usar, no será elegida Tema 12: Memoria Virtual

37 37 3. Criterios de sustitución Tema 12: Memoria Virtual 1.Página óptima (OPT, MIN) 2.Página pésima (MAX) 3.Página usada más recientemente (MRU) 4.Sustitución aleatoria 5.Sustitución por orden de carga (FIFO) 6.Página no usada recientemente (NRU) 7.Página usada menos frecuentemente (LFU) 8.Página usada menos recientemente (LRU) 9.Aproximación discreta a LRU 10.Sustitución por envejecimiento

38 38 3.8 Página usada menos recientemente (LRU)  Criterio: expulsar la página que más tiempo lleve sin usarse  Fundamento: Cuanto más tiempo haga que no se use, por principio de localidad, menos probable es que haga falta en el futuro inmediato  Diferencia con NRU:  LRU da menos importancia a los accesos pasados cuanto más tiempo hace que se produjeron  NRU da importancia a accesos en “pasado reciente”, y ninguna a accesos en “pasado remoto” Tema 12: Memoria Virtual

39 39 3.8 Página usada menos recientemente (LRU) Tema 12: Memoria Virtual Ejemplo de traza  Cadena de referencias: 0, 1, 2, 3, 0, 1, 4, 0, 1, 2, 3, 4  Nº de marcos: 3 0 1 2 3 0 1 4 0 1 2 3 4 0 AF 1 0 2 1 0 3 3R0 2 1 0 3 2 1 0 3 4 1 0 4R3 0 4 1 1 0 4 2 1 0 2R4 3 2 1 3R0 4 3 2 0R11R24R1

40 40 3.8 Página usada menos recientemente (LRU)  Implementación:  Listas o pilas  Contador de accesos  Matrices de bits Implementación LRU mediante listas o pilas  Mantener una lista de páginas ordenada por acceso  Cada vez que se accede a una página, se coloca la primera Tema 12: Memoria Virtual + reciente P1P2P3P4 P5 - reciente + reciente P2P1P3P4 P5 - reciente + reciente P3P2P1P4 P5 - reciente + reciente P4P3P2P1 P5 - reciente + reciente P1P5P4P3 P2 - reciente + reciente P5P4P3P2 P1 - reciente

41 41 3.8 Página usada menos recientemente (LRU) Implementación LRU mediante listas o pilas  Inconvenientes:  ¡Inviable en la práctica! Tema 12: Memoria Virtual

42 42 3.8 Página usada menos recientemente (LRU) Tema 12: Memoria Virtual Implementación LRU mediante contador de acceso  en MMU: un contador de accesos a memoria  en tabla de páginas: bits suficientes para almacenar este contador  Cada vez que se accede a una página: se almacena en tabla de páginas el valor actual del contador de accesos  Ante una sustitución: se escoge la que tiene el valor menor del contador … MarcoR… 81… 12041… 121… 321… ……… 1 2 3 0 751575167517751875197520 7516 … 7517 … 7518 7516 7517 … 7518 7516 7517 7519 … 7520 7516 7517 7519 …

43 43 3.8 Página usada menos recientemente (LRU) Tema 12: Memoria Virtual Implementación LRU mediante contador de acceso  Inconvenientes:  Necesario contador con gran nº de bits  Necesario almacenar dicho nº de bits por cada página  Por cada acceso, acceso adicional a memoria para almacenar contador

44 44 3.8 Página usada menos recientemente (LRU) Tema 12: Memoria Virtual Implementación LRU mediante matriz de bits  en MMU: una matriz de bits de tamaño n x n  Por cada acceso a una página p:  Poner a 1 la fila p  Poner a 0 la columna p  Ante una sustitución: se elige la página con el menor nº en binario natural en su fila 1 2 3 0 Ejemplo: accesos a páginas 1, 3, 0, 2 0000 0000 0000 0000 1 230 0000 1111 0000 0000 0000 1011 0000 0000 0000 1011 0000 1111 0000 1010 0000 1110 1111 1010 0000 1110 0111 0010 0000 0110 0111 0010 1111 0110 0101 0000 1101 0100

45 45 3.8 Página usada menos recientemente (LRU) Tema 12: Memoria Virtual Implementación LRU mediante matriz de bits  Inconvenientes:  ¡Tamaño de la matriz en la práctica!  Método LRU, en general:  No implementable en la práctica como criterio de sustitución de páginas  Aplicable en otros contextos  Solución: aproximación discreta

46 46 3. Criterios de sustitución Tema 12: Memoria Virtual 1.Página óptima (OPT, MIN) 2.Página pésima (MAX) 3.Página usada más recientemente (MRU) 4.Sustitución aleatoria 5.Sustitución por orden de carga (FIFO) 6.Página no usada recientemente (NRU) 7.Página usada menos frecuentemente (LFU) 8.Página usada menos recientemente (LRU) 9.Aproximación discreta a LRU 10.Sustitución por envejecimiento

47 47 3.9 Aproximación discreta a LRU  Idea similar a aproximación a LFU:  Se contarán periodos sin uso, en lugar de periodos con uso  Implementación aproximada:  Contador de periodos en que página no ha sido usada  Se programa timer. En cada expiración: Se comprueba qué páginas tienen activo bit R Aquellas que tienen activo bit R: contador = 0 Aquellas que no lo tienen activo: se incrementa contador Tema 12: Memoria Virtual 0 0 0 0 … MarcoR… 80… 12040… 120… 320… ……… 1 2 3 0 t T 0 1 1 0 … MarcoR… 81… 12040… 120… 321… ……… 0 0 2 1 … MarcoR… 81… 12041… 120… 320… ……… 0 1 0 2 … MarcoR… 81… 12040… 121… 320… ……… 0 0 0 3 … MarcoR… 81… 12041… 121… 320… ………

48 48 3. Criterios de sustitución Tema 12: Memoria Virtual 1.Página óptima (OPT, MIN) 2.Página pésima (MAX) 3.Página usada más recientemente (MRU) 4.Sustitución aleatoria 5.Sustitución por orden de carga (FIFO) 6.Página no usada recientemente (NRU) 7.Página usada menos frecuentemente (LFU) 8.Página usada menos recientemente (LRU) 9.Aproximación discreta a LRU 10.Sustitución por envejecimiento

49 49 3.10 Sustitución por envejecimiento  Idea:  Se asocia a cada página una variable con un número determinado de bits  Se revisan periódicamente los bits R de tabla de página  Al final de cada periodo, se desplazan a la derecha los bits de cada variable  Bit R entra como bit de mayor peso y se pone a 0  Ante una sustitución: se elige la página con menor valor en variable Tema 12: Memoria Virtual 0000 … MarcoR… 80… 12040… 120… 320… ……… 1 2 3 0 t T 1000 0000 1000 … MarcoR… 81… 12040… 120… 321… ……… 1100 1000 0000 0100 … MarcoR… 81… 12041… 120… 320… ……… 1110 0100 1000 0010 … MarcoR… 81… 12040… 121… 320… ……… 1111 1010 1100 0001 … MarcoR… 81… 12041… 121… 320… ………

50 50 3.10 Sustitución por envejecimiento  Mejores resultados que anterior método:  En anterior método, dos páginas usadas en un mismo periodo son indistinguibles  Por envejecimiento, se distinguen en función del uso en anteriores periodos  El pasado remoto se termina olvidando  Páginas con variable a 0: hace más de n periodos de tiempo que no se usan Tema 12: Memoria Virtual

51 51 Índice: 1.Introducción 2.Elementos de análisis 3.Criterios de sustitución de páginas 4.Algoritmos de pila 5.Memoria virtual y multiprogramación 6.Otros aspectos de la memoria virtual 51 Tema 12: Memoria Virtual

52 52 4. Algoritmos de pila  Intuitivamente:  Algoritmo LRU, con cadena de referencias con 5 referencias distintas, y 5 marcos: Tema 12: Memoria Virtual 012301401234 012301401234 01230140123 0123014012 012333401 222340 AF AF AF AF AFAF AF AF AF * * AF * * *AF AF AF AF * * AF * * * * *

53 53 4. Algoritmos de pila  M(m,t):  Conjunto de páginas cargadas en instante de tiempo t con m marcos  Propiedad de pila: M(m,t)  M(m+1,t)  Consecuencia 1: si en un instante t, p  M(m,t) → p  M(m+1,t)  Consecuencia 2: si en el instante t, p no produce fallo de página con m marcos, tampoco lo producirá con m+1  Consecuencia 3: el número de fallos de página no aumenta si aumenta el número de marcos: F(m)  F(m+k),  k > 0 Tema 12: Memoria Virtual  Si un criterio cumple propiedad de pila, no puede producir anomalía de Belady

54 54 4. Algoritmos de pila  Distancia:  Profundidad a la que se encuentra una página en la pila cuando se hace referencia a ella  Si no está cargada:  Tema 12: Memoria Virtual 012301401234 012301401234 01230140123 0123014012 012333401 222340     4 4  3 3 5 5 5

55 55 4. Algoritmos de pila Tema 12: Memoria Virtual 012301401234 012301401234 01230140123 0123014012 012333401 222340     4 4  3 3 5 5 5 Distancia 12345  Frecuencia 002235

56 56 Índice: 1.Introducción 2.Elementos de análisis 3.Criterios de sustitución de páginas 4.Algoritmos de pila 5.Memoria virtual y multiprogramación 6.Otros aspectos de la memoria virtual 56 Tema 12: Memoria Virtual

57 57 5. Memoria Virtual con multiprogramación Tema 12: Memoria Virtual 1.Criterios locales y globales 2.Modelo del conjunto de trabajo 3.Aplicación de frecuencia de fallos de páginas 4.Métodos de reserva 5.Carga de páginas por anticipado

58 58 5. Memoria Virtual con multiprogramación Tema 12: Memoria Virtual 1.Criterios locales y globales 2.Modelo del conjunto de trabajo 3.Aplicación de frecuencia de fallos de páginas 4.Métodos de reserva 5.Carga de páginas por anticipado

59 59 5.1 Criterios globales y locales  Cuando hay que elegir una página víctima, ¿entre qué paginas se elige?  Entre las asignadas al proceso (criterio local)  Entre todas las páginas del sistema (criterio global) Tema 12: Memoria Virtual  Consecuencia de criterio local:  nº de páginas de un proceso cargadas en memoria permanece constante ¡Ostras! ¿Y cuántos marcos asignamos inicialmente? Pues un porcentaje determinado de los que necesita ¿Y cuántas necesita?

60 60 5.1 Criterios globales y locales Criterios locales  Ventajas:  Criterio de selección sólo opera con las páginas del proceso: ¡más eficiente! Tema 12: Memoria Virtual  Inconvenientes:  ¿Asignación inicial de marcos? Criterios globales  Ventajas:  Asignación de marcos se adapta dinámicamente a necesidades de procesos  Inconvenientes:  Criterios de sustitución favorecen a proceso activo  Procesos que lleven tiempo inactivos: rearranque en caliente

61 61 5.1 Criterios globales y locales Criterios mixtos  Ante una sustitución: criterio local  El algoritmo de sustitución opera sobre un conjunto menor de marcos  Dinámicamente, se equilibra el número de marcos entre procesos Tema 12: Memoria Virtual

62 62 5. Memoria Virtual con multiprogramación Tema 12: Memoria Virtual 1.Criterios locales y globales 2.Modelo del conjunto de trabajo 3.Aplicación de frecuencia de fallos de páginas 4.Métodos de reserva 5.Carga de páginas por anticipado

63 63 5.2 Modelo del conjunto de trabajo  Conjunto de trabajo durante una fase de ejecuión:  Conjunto de páginas referidas durante dicha fase  El conjunto de trabajo cambia dinámicamente  Si durante una fase proceso tiene…  más marcos que páginas hay en conjunto de trabajo de fase: marcos sobrantes no se usan  menos marcos que páginas hay en conjunto de trabajo de fase: posible hiperpaginación Tema 12: Memoria Virtual  Hiperpaginación:  Aumento de la frecuencia de fallo de página hasta el punto que se produce un fallo de página cada muy pocas instrucciones  Puede ser local o global

64 64 5.2 Modelo del conjunto de trabajo Ejemplo de hiperpaginación Tema 12: Memoria Virtual … for(i=0; i<K; i++) for (j=0; j<N; j++) rutina(tabla[j]); …...... tabla[0] tabla[1] tabla[2] tabla[N-2] tabla[N-1]...... tabla[0] tabla[1] tabla[2] tabla[N-2] N marcos N - 1 marcos tabla[N-1] tabla[0] tabla[1] tabla[N-3] tabla[N-2] tabla[N-1] tabla[0] tabla[N-4]

65 65 5.2 Modelo del conjunto de trabajo Evolución del conjunto de trabajo Tema 12: Memoria Virtual t nº de páginas en conjunto trabajo Arranque en frío Inicio nueva fase Olvido de páginas de fase anterior Estabilización Inicio nueva fase Olvido de páginas de fase anterior Estabilización

66 66 Tema 12: Memoria Virtual  Principio del conjunto de trabajo:  Un proceso sólo se debe ejecutar si tiene marcos suficientes para cargar su mayor conjunto de trabajo  Nunca se debe retirar a un proceso una página perteneciente a su conjunto de trabajo.  ¿Qué páginas forman parte del conjunto de trabajo?  Conjunto de trabajo observado: conjunto de páginas referidas en el periodo de tiempo [t-  t, t] 5.2 Modelo del conjunto de trabajo

67 67 Criterio WS-Clock  Algoritmo del reloj, pero con tercera oportunidad en función de conjunto de trabajo observado Tema 12: Memoria Virtual primera P1 P2 P3 P4 P5 r=1 r’=0 t=t 0 r=0 r’=0 t=t 0 r=0 r’=0 t=t 0 r=0 r’=0 t=t 0 r=1 r’=0 t=t 0 5.2 Modelo del conjunto de trabajo  <<  T t0t0 t1t1 r=0 r’=1 t=t 1 r=0 r’=0 t=t 0 r=0 r’=0 t=t 0 r=0 r’=0 t=t 0 r=0 r’=1 t=t 1 r=0 r’=0 t=t 1 ¿t 0  [t-  t, t]?

68 68 5. Memoria Virtual con multiprogramación Tema 12: Memoria Virtual 1.Criterios locales y globales 2.Modelo del conjunto de trabajo 3.Aplicación de frecuencia de fallos de páginas 4.Métodos de reserva 5.Carga de páginas por anticipado

69 69 Tema 12: Memoria Virtual  Idea:  En lugar de determinar qué páginas forman parte de conjunto de trabajo, determinemos al menos cuántas son  Asignemos dinámicamente el nº suficiente de marcos  Un buen criterio de sustitución nunca debería quitar una página del conjunto de trabajo  Para ajustar número de marcos: se mide frecuencia de fallos de página  Se fija límite superior e inferior para dicha frecuencia  Si se supera límite superior: se asignan mas marcos  Si se baja de límite inferior: se retiran marcos 5.3 Aplicación de la frecuencia de fallos de pg.

70 70 Tema 12: Memoria Virtual  Para obtener frecuencia de fallos: se mide tiempo medio entre fallos 5.3 Aplicación de la frecuencia de fallos de pg. PFF m Límite superior Límite inferior

71 71 5. Memoria Virtual con multiprogramación Tema 12: Memoria Virtual 1.Criterios locales y globales 2.Modelo del conjunto de trabajo 3.Aplicación de frecuencia de fallos de páginas 4.Métodos de reserva 5.Carga de páginas por anticipado

72 72 Tema 12: Memoria Virtual  Idea: MV funciona mejor si hay marcos libres cuando se produce fallo de página  No hay que ejecutar criterio de sustitución en ese momento  no hay que grabar página víctima  ¡Mantengamos siempre una lista de marcos libres!  Demonio de paginación:  Se ejecuta cuando no hay otra cosa que hacer, o periódicamente  Si nº de marcos libres < K: arrebata un número de marcos a los procesos, aplicando algún criterio de sustitución Los prepara para su uso 5.4 Métodos de reserva

73 73 Tema 12: Memoria Virtual  ¿Posible problema?  Demonio de paginación arrebata un marco a un proceso  Tras ello, proceso se reanuda y produce fallo de página para la página que contenía 5.4 Métodos de reserva  Solución: se le devuelve el marco, con su página todavía cargada

74 74 5. Memoria Virtual con multiprogramación Tema 12: Memoria Virtual 1.Criterios locales y globales 2.Modelo del conjunto de trabajo 3.Aplicación de frecuencia de fallos de páginas 4.Métodos de reserva 5.Carga de páginas por anticipado

75 75 Tema 12: Memoria Virtual  Idea: cargar las páginas antes de que hagan falta  Se evitan así fallos de página  Posibilidades:  Aplicando localidad espacial  Aplicando conjuntos de trabajo 5.5 Carga de páginas por anticipado  Localidad espacial:  Cuando se transfiere una página: transferir las páginas adyacentes Por localidad espacial, es muy probable que hagan falta Posiblemente se puedan transferir en el mismo acceso (gratis)

76 76 Tema 12: Memoria Virtual 5.5 Carga de páginas por anticipado  Por conjuntos de trabajo:  Útil con criterios globales: hace rearranque en caliente más eficiente  En caso de bloqueo, se anotan las páginas que supuestamente pertenecen a conjunto de trabajo  Cuando proceso se reanuda: antes de activarlo, se cargan todas esas páginas

77 77 Índice: 1.Introducción 2.Elementos de análisis 3.Criterios de sustitución de páginas 4.Algoritmos de pila 5.Memoria virtual y multiprogramación 6.Otros aspectos de la memoria virtual 77 Tema 12: Memoria Virtual

78 78 6. Otros aspectos de la memoria virtual Tema 12: Memoria Virtual 1.Tamaño de la página 2.Páginas compartidas 3.Rearranque de la instrucción

79 79 6. Otros aspectos de la memoria virtual Tema 12: Memoria Virtual 1.Tamaño de la página 2.Páginas compartidas 3.Rearranque de la instrucción

80 80 Tema 12: Memoria Virtual  ¿Páginas grandes? ¿páginas pequeñas? ¿Tamaño ideal?  Varios factores con criterios contrapuestos:  Desperdicio interno  Tabla de páginas  Acceso a disco  Traducción de direcciones  Estructura de los procesos 6.1 Tamaño de la página Desperdicio interno:  Fracción no utilizada de última página asignada  valor medio: 50%  Criterio: páginas pequeñas

81 81 Tema 12: Memoria Virtual 6.1 Tamaño de la página Tabla de páginas  Cuanto más pequeñas las páginas: más entradas en tabla de páginas  más operaciones necesarias para su manipulación  Criterio: páginas grandes Acceso al disco  Discos transfieren siempre bloques del mismo tamaño  toda página menor que el bloque de disco se transfiere en un único acceso  Criterio: páginas “grandes” (mismo tamaño bloque de disco)

82 82 Tema 12: Memoria Virtual 6.1 Tamaño de la página Traducción de direcciones  Cuanto más grandes las páginas: cada entrada de la memoria asociativa cubre un mayor rango de direcciones  menos accesos a memoria para obtener números de marco  Criterio: páginas grandes Estructura de los procesos  Procesos invierten mayor parte de su tiempo ejecutando bucles muy locales  Criterio: páginas pequeñas

83 83 Tema 12: Memoria Virtual 6.1 Tamaño de la página  Optimización en función de:  s (tamaño medio de los procesos)  e (tamaño de la entrada de la tabla de páginas)  p (tamaño de página, variable a optimizar)  Número medio de páginas por proceso:  Tamaño la tabla de páginas:  Desperdicio por fragmentación interna:  Sobrecarga total por proceso:

84 84 Tema 12: Memoria Virtual 6.1 Tamaño de la página  Minimicemos como función de p  Derivamos respecto a p:  igualamos a 0:  despejamos p:  Tamaños típicos actuales: 4Kb  SO puede usar un tamaño múltiplo del tamaño del traductor

85 85 6. Otros aspectos de la memoria virtual Tema 12: Memoria Virtual 1.Tamaño de la página 2.Páginas compartidas 3.Rearranque de la instrucción

86 86 Tema 12: Memoria Virtual 6.2 Páginas compartidas  Si página compartida es elegida como víctima: se deben actualizar todas las tablas de páginas que la comparten  Elementos de administración necesarios:  Tabla de páginas compartidas  Listas de procesos que las comparten  etc.  Criterios de sustitución: ¿y si una página muy usada por un proceso no es usada por los demás?  Tiempos virtuales: el menor  ¿Conjuntos de trabajo?  …  MORALEJA: las páginas compartida no se descargan

87 87 6. Otros aspectos de la memoria virtual Tema 12: Memoria Virtual 1.Tamaño de la página 2.Páginas compartidas 3.Rearranque de la instrucción

88 88 Tema 12: Memoria Virtual 6.3 Rearranque de la instrucción  Una instrucción puede provocar distintos fallos de página:  Posibilidades:  Al cargar el código de la instrucción  Al acceder a primer operando  Al acceder a segundo operando  En el caso de ambos operandos, puede ocurrir una vez se han empezado a copiar bytes  No bastaría con ejecutar de nuevo la instrucción:  Cuando ocurre un fallo de página, la instrucción puede haber tenido ya efectos REP MOVS m32, m32

89 89 Tema 12: Memoria Virtual 6.3 Rearranque de la instrucción  Rearranque de instrucción:  capacidad de los procesadores para conservar su estado interno tras un fallo de página, y reanudar la instrucción causante del fallo a partir de dicho estado una vez cargada la página  Si un procesador no soporta rearranque de instrucción:  No sirve para construir un sistema con memoria virtual

90 90


Descargar ppt "1 Tema 12: Memoria Virtual Sistemas Operativos (Tema 13 en apuntes prof. Rovayo)"

Presentaciones similares


Anuncios Google