La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

(Tema 15 en apuntes prof. Rovayo)

Presentaciones similares


Presentación del tema: "(Tema 15 en apuntes prof. Rovayo)"— Transcripción de la presentación:

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

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

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

4 Criterio de Sustitución
1. Introducción 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 Tema 12: Memoria Virtual La piedra angular de este tema son los criterios de sustitución Criterio de Sustitución 4

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

6 2. Elementos de análisis 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 Tema 12: Memoria Virtual Ojo al dato, que el criterio de localidad no es una herramienta, sino una propiedad que empíricamente se comprueba que se cumple. La estudiamos aquí por conveniencia. 6

7 2. Elementos de análisis Cadena de referencias
Definición: secuencia de páginas referidas por un proceso Cálculo: supongamos que un proceso hace los siguientes accesos a memoria (pagina/despl.): Tema 12: Memoria Virtual Los desplazamientos no nos importan Tampoco nos importa que se acceda varias veces consecutivas a la misma página: si se produce fallo de página, sólo lo producirá el primer acceso En una cadena de referencia, nunca aparecerán varias referencias consecutivas a la misma página 0, 1, 0, 2, 255, 2… /0 , /2 , /6 , /8 , 1 /0 , 1 /1 , 1 /4 , /8 , 2 /15 , 2 /18 , 2 /15 , 2 /18 , 255 /32 , 255 /36 , 2 /15 Obtención: Trazas de programas: ¡complicado! Simulación 7

8 2. Elementos de análisis Índices de valoración
¡En los m primeros fallos no interviene el criterio de sustitución! ¿Y eso es mucho? Índices de valoración Sirven para medir las prestaciones de los criterios Todas ellas referidas a una cadena de referencias Tema 12: Memoria Virtual ¡NO SÉ DE DÓNDE ﻵﺵф SACAR A! : Número de fallos de página con m marcos F sí es fácil de conseguir. Windows NT/2K/XP lo puede dar en el administrador de tareas A = número de accesos : Tasa de fallos de página : Tasa de fallos de página en caliente : Número de fallos de página en caliente 8

9 2. Elementos de análisis 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 Tema 12: Memoria Virtual Número característico: área bajo la curva, y es una buena medida de la calidad del algoritmo F(m) F(p)=p m=1 m=p m 9

10 2. Elementos de análisis 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 vuelva a ser accedida Tema 12: Memoria Virtual El principio de localidad nos beneficia pues, si los accesos a memoria fuesen totalmente aleatorios, la probabilidad de producirse un fallo sería inversamente proporcional al nº de marcos, con lo que la curva paracorde sería una recta de pendiente negativa (click) No obstante, se comprueba que las curvas paracordes típicas tienen una forma como la que presentamos (click), sensiblemente mejor que la probabilidad inversa al número de páginas. F(m) referencias aleatorias referencias localizadas 10 m=1 m=p m

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

12 Criterios de laboratorio
3. Criterios de sustitución Página óptima (OPT, MIN) Página pésima (MAX) Página usada más recientemente (MRU) Sustitución aleatoria Sustitución por orden de carga (FIFO) Página no usada recientemente (NRU) Página usada menos frecuentemente (LFU) Página usada menos recientemente (LRU) Aproximación discreta a LRU Sustitución por envejecimiento Tema 12: Memoria Virtual Criterios de laboratorio Los criterios 1 a 3 no están pensados para su uso en la práctica (de hecho el 1 y 2 requieren conocimiento del futuro) sino para servir como criterios de comparación 12

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

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) F(p)=p m=1 m=p m 14

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

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

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) MAX MIN F(p)=p m=1 m=p m 17

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

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

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) MAX MRU MIN F(p)=p m=1 m=p m 20

21 3.3 Página usada más recientemente (MRU)
Ejemplo de traza Cadena de referencias: 0, 1, 2, 3, 0, 1, 4, 0, 1, 2, 3, 4 Nº de marcos: 3 Tema 12: Memoria Virtual Paradójicamente, con la cadena de referencia usadas, ¡estos resultados son buenos! (mejores que NRU y LRU) :-O 1 2 2 2 1 1 1 1 1 4 4 4 4 4 4 2 3 3 3 3 3 3 3 3 3 AF AF AF 3R2 4R1 1R0 2R1 21

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

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) MAX MRU MIN F(p)=p m=1 m=p m 23

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

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 El puntero “primera” apunta a la más antigua, y el puntero “última” a la más nueva. Ante la necesidad de un reemplazo (click), se quita la página que está la primera y se inserta la nueva página al final. Otra posible implementación: tabla circular con un índice que avanza apuntando a la próxima a expulsar primera P1 P2 P3 P4 P5 P6 última P3 P4 P5 P2 siguiente P6 P1 25

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 deben permanecer más tiempo en memoria → son las atacadas Anomalía de Belady Tema 12: Memoria Virtual 1 2 3 4 3 3 3 4 4 4 4 4 4 9 Fallos 1 1 1 2 2 2 2 2 2 1 1 1 1 1 3 3 AF AF AF 3R0 0R1 1R2 4R3 2R0 3R1

27 3.5 Sustitución por orden de carga (FIFO) 1 2 3 4
1 2 3 4 Tema 12: Memoria Virtual ¡10 Fallos! La anomalía de Belady se detecta en la curva paracorde por no ser siempre decreciente (click) AF AF AF AF 4R0 0R1 1R2 2R3 3R4 4R0 F(m) m

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

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 29

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 El SO debe poner a cero en algún momento el bit R, por ejemplo un tiempo después de cargar cada página, o cada vez que se resuelve un fallo, etc. El bit M se puede simular si se pueden marcar las páginas como de sólo lectura. El bit R, si se pueden marcar como no legibles, o como no presentes Preferible: no accedida y no modificada Lo último: accedida y modificada, pues las modificadas hay que volcarlas a disco De entre 0 1 y 1 0: preferible modificada y no accedida que lo contrario, pues quitar páginas que probablemente hagan falta provocará más fallos de páginas y por tanto más transferencias Marco P R M 8 1 1204 12 32 1 Inconvenientes: ¿Cuál página quito a igualdad de condiciones? 1 2 2 3 3 4 30

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 Haz notar que todas las páginas se cargan porque son accedidas, luego todas tienen el bit R a 1 cuando se cargan, luego todas reciben la segunda oportunidad al menos una vez primera P1 P2 P3 P4 P5 r=1 r=0 r=0 r=0 r=0 r=1 última 31

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 P6 P2 r=0 r=1 Darle una segunda oportunidad a P1 es tan fácil como poner a 0 su bit R y pasar a la siguiente (click) Cuando se encuentra la página víctima, es tan fácil como sustituir la información en su su nodo por la de la página recién cargada, y pasar al siguiente P3 P1 r=0 r=1 r=0 primera P4 r=0 P5 r=1 32

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 no 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) Si no  página víctima Tema 12: Memoria Virtual Haz notar que todas las páginas se cargan porque son accedidas, luego todas tienen el bit R a 1 cuando se cargan, luego todas reciben la segunda oportunidad al menos una vez La ilustración muestra el caso en el que en el anterior ejemplo la página P2 hubiese recibido una tercera oportunidad primera P2 P3 P4 P5 P1 r=0 m=1 r=0 m=0 r=0 m=1 r=1 m=1 r=0 m=1 m=0 última 33

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

35 3.7 Página usada menos frecuentemente (LFU)
Mmm… no sé yo, eh? 3.7 Página usada menos frecuentemente (LFU) 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 a páginas implica que cada acceso a memoria debe incrementar algún contador! Implementación aproximada: Contador de periodos en que página ha sido usada Tema 12: Memoria Virtual Un contador por cada página, inicialmente a 0 Temporizador que produce interrupción periódica con periodo T. Cuanto más pequeño sea T, más aproximados serán los resultados al algoritmo LFU real Tras expirar cada periodo del temporizador, se incrementa en 1 el contador de las páginas a las que le hardware les ha activado el bit R, poniéndose a 0 de nuevo dicho bit. Ante una sustitución: prescindir de la que tiene menor valor en el contador Marco R 8 1 1204 12 32 Marco R 8 1 1204 12 32 Marco R 8 1 1204 12 32 Marco R 8 1204 12 32 Marco R 8 1 1204 12 32 2 1 3 1 4 2 1 1 1 T 2 3 35 t

36 3.7 Página usada menos frecuentemente (LFU)
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 36

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

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 38

39 3.8 Página usada menos recientemente (LRU)
Ejemplo de traza Cadena de referencias: 0, 1, 2, 3, 0, 1, 4, 0, 1, 2, 3, 4 Nº de marcos: 3 Tema 12: Memoria Virtual Sugerencia: ordenar las páginas como si fuese una pila Sin necesidad de seguir la traza, ¿qué páginas estarían cargadas en memoria tras ejecutarse la cadena de referencia? Las últimas n páginas referidas (siendo n= nº de marcos) 1 2 3 1 4 1 2 3 4 1 2 3 1 4 1 2 3 1 2 3 1 4 1 2 AF AF AF 3R0 0R1 1R2 4R3 2R4 3R0 4R1 39

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 Secuencia de accesos: P2, P3, P4, P5, P1 + reciente + reciente + reciente + reciente + reciente + reciente P4 P1 P1 P5 P3 P2 P2 P4 P3 P1 P5 P2 P3 P4 P2 P3 P3 P1 P4 P4 P2 P3 P4 P1 P2 P1 P5 P5 P5 P5 - reciente - reciente - reciente - reciente - reciente - reciente

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 LRU mediante pilas o colas es inviable en la práctica pues *POR CADA ACCESO A MEMORIA* podría ser necesario ejecutar una rutina que actualice la lista.

42 3.8 Página usada menos recientemente (LRU)
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 Tema 12: Memoria Virtual Marco R 8 1 1204 12 32 7520 7516 7517 7519 7518 7516 7517 7519 7516 7516 7517 7518 7516 7517 7520 7519 7515 7518 7516 7517 1 2 3

43 3.8 Página usada menos recientemente (LRU)
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 Tema 12: Memoria Virtual

44 3.8 Página usada menos recientemente (LRU)
Implementación LRU mediante matriz de bits en MMU: una matriz de bits de tamaño nxn 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 Tema 12: Memoria Virtual Siendo n el número de marcos Ejemplo: accesos a páginas 1, 3, 0, 2 1 2 3 1 1 1 1 1 1 1 1 1 2 3

45 3.8 Página usada menos recientemente (LRU)
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 Tema 12: Memoria Virtual

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

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, R=0 Aquellas que no lo tienen activo: se incrementa contador Tema 12: Memoria Virtual Nuevamente, cuanto más pequeño sea T, más aproximados serán los resultados al algoritmo LRU real Ante una sustitución: prescindir de la que tiene mayor valor en el contador No se distingue entre todas las páginas usadas/sin usar en un mismo periodo Marco R 8 1 1204 12 32 Marco R 8 1 1204 12 32 Marco R 8 1 1204 12 32 Marco R 8 1204 12 32 Marco R 8 1 1204 12 32 3 1 2 2 1 1 1 T 2 3 47 t

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

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 Marco R 8 1 1204 12 32 Marco R 8 1 1204 12 32 Marco R 8 1 1204 12 32 Marco R 8 1 1204 12 32 Marco R 8 1204 12 32 1000 0000 1100 1000 0000 0100 1110 0100 1000 0010 1111 1010 1100 0001 0000 1 T 2 3 49 t

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 Como inconveniente, si acaso, se podría citar el tamaño de las variables y tener que recorrer toda la tabla buscando la menor, pero no es realmente un problema grave

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

52 4. Algoritmos de pila 1 2 3 4 Intuitivamente:
Algoritmo LRU, con cadena de referencias con 5 referencias distintas, y 5 marcos: Tema 12: Memoria Virtual 1 2 3 4 Con tantos marcos como páginas distintas se refieren: sólo los fallos debidos al arranque en frío (click) Si quitamos dos marcos (click), la tabla quedaría dividida en las tres filas superiores que siguien representando los marcos que tenemos, y las dos inferiores, que representan a las páginas descargadas. Esto quiere decir que todos los accesos a páginas por debajo de la línea, son accesos a páginas descargadas y por tanto se convierten en fallos de página (click) con lo que nos aparecen nuevos fallos de página (click) Si quitamos un marco más, ocurre de nuevo lo mismo con los accesos a la tercera fila (click) Hacer notar que en cada instante t, la columna que representa el conjunto de marcos cargados con m marcos es un subconjunto de la columna que representa m+1 marcos AF AF AF AF * * AF * * * * * AF AF AF AF * * AF * * * AF AF AF AF AF

53 4. Algoritmos de pila M(m,t): Propiedad de pila: M(m,t)  M(m+1,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 4. Algoritmos de pila 1 2 3 4     4 4  3 3 5 5 5 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 1 2 3 4 El concepto de distancia sólo tiene sentido en los algoritmos que cumplen la propiedad de pila (como LRU) Con esta definición, podemos calcular la distancia para cada acceso, y tabular las veces que aparece cada distancia (siguiente diapositiva)     

55 4. Algoritmos de pila 1 2 3 4     4 4  3 3 5 5 5 1 2 3 4 5 
1 2 3 4 Tema 12: Memoria Virtual Para saber cuántos fallos se habrían producido con n marcos, sólo hay que sumar las frecuencias de n en adelante      Distancia 1 2 3 4 5 Frecuencia

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

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

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

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 ¡Ostras! ¿Y cuántos marcos asignamos inicialmente? Pues un porcentaje determinado de los que necesita En un criterio local, el número de marcos permanece constante: nos la jugamos en la asignación inicial de marcos Si asignamos más de la cuenta: no se usa memoria virtual Si asignamos menos: puede haber hiperpaginación El tamaño del proceso puede no conocerse con exactitud hasta el tiempo de ejecución ¿Y cuántas necesita? Consecuencia de criterio local: nº de páginas de un proceso cargadas en memoria permanece constante

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 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 5. Memoria Virtual con multiprogramación
Criterios locales y globales Modelo del conjunto de trabajo Aplicación de frecuencia de fallos de páginas Métodos de reserva Carga de páginas por anticipado Tema 12: Memoria Virtual

63 5.2 Modelo del conjunto de trabajo
Conjunto de trabajo durante una fase de ejecució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 fallos de página hasta el punto que se produce un fallo de página cada muy pocas instrucciones Puede ser local o global

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[0] tabla[N-2] . . . tabla[N-1] tabla[1] tabla[N-1] tabla[0] tabla[1] conjunto de trabajo para esta fase de ejecución: páginas que contienen el código del bucle y el código de la rutina() páginas que contienen a variables i y j páginas que contienen tabla[]. Para simplificar: Fijémonos sólo en las de la tabla supongamos que cada entrada de la tabla ocupa una página Con N marcos, en la primera vuelta del bucle externo se cargan todas las páginas de la tabla, y en las siguientes vueltas, ya está el conjunto de trabajo cargado con lo que no se producen mas fallos de página Con N-1 marcos, nunca se llegan a cargar todas las páginas, y siempre cada vuelta del bucle provoca un fallo de página tabla[2] tabla[0] tabla[1] tabla[2] N - 1 marcos N marcos tabla[N-2] tabla[N-2] tabla[N-4] tabla[N-3] tabla[N-1]

65 5.2 Modelo del conjunto de trabajo
Inicio nueva fase Inicio nueva fase Evolución del conjunto de trabajo Estabilización Estabilización Tema 12: Memoria Virtual Arranque en frío Estabilización Haz notar que en el último cambio de fase, aunque se pasa a una fase con menos páginas, número de fallos de páginas aumenta Consecuencia: en cada cambio de fase, se produce un aumento momentáneo del número de fallos de página que remite cuando se cargan las páginas de la nueva fase. nº de páginas en conjunto trabajo Olvido de páginas de fase anterior t Olvido de páginas de fase anterior

66 5.2 Modelo del conjunto de trabajo
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] Tema 12: Memoria Virtual t debe ser cuidadosamente elegido: Si es demasiado grande, puede tener páginas que ya no pertenezcan al conjunto de trabajo observado Si es demasiado pequeño, puede no ser significativo

67 5.2 Modelo del conjunto de trabajo
Criterio WS-Clock Algoritmo del reloj, pero con tercera oportunidad en función de conjunto de trabajo observado ¿t0 [t-t, t]? Tema 12: Memoria Virtual P2 A cada página se le asocia, además del bit R: Un bit R’ sobre el que se copia el bit R Una marca de tiempo t Se programa un timer con un periodo  << T. Cada vez que expira (click), a todas las páginas que tienen el bit R a 1, se lo ponemos a 0 y ponemos el bit R’ a 1 en su lugar. Es este bit el que usaremos para la segunda oportunidad. En la marca de tiempo guardamos el instante actual Cuando hay que realizar una sustitución: la primera candidata es la página apuntada por “primera”. Si esta página tiene el bit R’ a 1, se lo ponemos a a 0 (click) y pasamos a la siguiente (segunda oportunidad) Si esta página tiene el bit R’ a 0, comprobamos si el instante de tiempo que tiene guardado está en la ventana de observación del conjunto de trabajo observado (click) Si es así, pasamos a la siguiente (3ª oportunidad) En caso contrario, esa es la víctima NOTA: Si ante una sustitución el algoritmo recorre todas las páginas dando la segunda y tercera oportunidad, eso significa que se ha detectado hiperpaginación r=0 r’=0 t=t0 r=0 r’=0 t=t0 P3 P1 r=0 r’=0 t=t0 r=0 r’=0 t=t0 r=0 r’=1 t=t1 r=0 r’=0 t=t1 r=1 r’=0 t=t0 primera P4 r=0 r’=0 t=t0 r=0 r’=0 t=t0  << T r=0 r’=1 t=t1 r=1 r’=0 t=t0 P5 t0 t1 67

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

69 5.3 Aplicación de la frecuencia de fallos de pg.
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 Tema 12: Memoria Virtual

70 5.3 Aplicación de la frecuencia de fallos de pg.
PFF Tema 12: Memoria Virtual Límite superior Límite inferior La zona óptima es la comprendida entre ambos límites: Si se disminuye el nº de marcos se entra en hiperpaginación Si se aumenta el nº de marcos no se usa memoria virtual Se intentará mantener al proceso en esta región comprendida entre ambos límites m Para obtener frecuencia de fallos: se mide tiempo medio entre fallos

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

72 5.4 Métodos de reserva 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 Tema 12: Memoria Virtual Nótese que gracias a este método, el tiempo consumido por criterio de sustitución se “paga” cuando el sistema no tendría otra cosa que hacer Es el caso del Zero Page Thread en W2K

73 5.4 Métodos de reserva ¿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 Tema 12: Memoria Virtual Solución: no borrar el contenido inmediatamente después de arrebatarlo y en este caso se le devuelve el marco, con su página todavía cargada

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

75 5.5 Carga de páginas por anticipado
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 Tema 12: Memoria Virtual 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 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 Tema 12: Memoria Virtual

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

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

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

80 6.1 Tamaño de la página ¿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 Tema 12: Memoria Virtual Desperdicio interno: Fracción no utilizada de última página asignada valor medio: 50% Criterio: páginas pequeñas

81 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 Tema 12: Memoria Virtual Respecto a la tabla de páginas, el espacio de administración es relativamente pequeño y el precio de la memoria disminuye, con lo que este argumento va pesando cada vez menos Respecto a los accesos a disco, ya que el precio es el mismo, mejor transferir páginas de tamaño similar al bloque de disco y se transfiere más información por el mismo precio 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 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 Tema 12: Memoria Virtual Estructura de los procesos Procesos invierten mayor parte de su tiempo ejecutando bucles muy locales Criterio: páginas pequeñas

83 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 del proceso: Desperdicio por fragmentación interna: Sobrecarga total por proceso: Tema 12: Memoria Virtual

84 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 Tema 12: Memoria Virtual Por ejemplo, procesos de 128 K y entradas en la tabla de 8 bytes, p=1448 byte (redondeado a 2K) Tamaños actuales: del orden de 4K en adelante

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

86 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 de último uso: el menor ¿Conjuntos de trabajo? MORALEJA: las páginas compartidas no se descargan Tema 12: Memoria Virtual

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

88 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 Tema 12: Memoria Virtual REP MOVS m32, m32 REP MOVS m32, m32: mueve tantas palabras palabras de 32 bits como se haya escrito previamente en registro E(CX) , de la dirección de memoria apuntada por DS:(E)SI a la dirección de memoria apuntada por ES:(E)DI (por cada dato movido decrementa este registro hasta que llega a 0)

89 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 Tema 12: Memoria Virtual

90 Playa virgen en Punta Cana, República Dominicana, Julio 2006


Descargar ppt "(Tema 15 en apuntes prof. Rovayo)"

Presentaciones similares


Anuncios Google