La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Memoria virtual. 2/71 Implementación de la Tabla de Páginas La Tabla de Páginas se mantiene en Memoria Principal. El Page-Table Base Register (PTBR) apunta.

Presentaciones similares


Presentación del tema: "Memoria virtual. 2/71 Implementación de la Tabla de Páginas La Tabla de Páginas se mantiene en Memoria Principal. El Page-Table Base Register (PTBR) apunta."— Transcripción de la presentación:

1 Memoria virtual

2 2/71 Implementación de la Tabla de Páginas La Tabla de Páginas se mantiene en Memoria Principal. El Page-Table Base Register (PTBR) apunta a la Tabla de Páginas. El Page-Table Length Register (PRLR) indica el tamaño de la Tabla de Páginas. En este esquema cada acceso de datos/instrucción requiere dos accesos de memoria. Uno para la tabla de página y uno para los datos/instrucción. El problema de los dos accesos a memoria puede ser solucionado por el empleo de una búsqueda rápida en un cache especial llamado la memoria asociativa o buffer de traducción adelantada (translation look-aside buffers, TLB). Algunos TLBs almacenan identificadores del espacio de dirección (ASIDs) en cada entrada de la TLB – este identifica únivocamente cada proceso para proporcionar la protección del espacio de direcciones para cada proceso. Some TLBs store address-space identifiers (ASIDs) in each TLB entry – uniquely identifies each process to provide address-space protection for that process

3 3/71 TLB: comentarios adicionales El TLB usa hardware de correspondencia asociativa para simultáneamente consultar todas las entradas de TLB, y así determinar si hay una coincidencia en el número de página El TLB debe vaciarse cada vez que un nuevo proceso entra en el estado de ejecución El CPU usa dos niveles de cache en cada referencia de memoria virtual  Primero el TLB: para convertir la dirección lógica a la dirección física  Una vez la dirección física se forma, el CPU busca entonces en el cache la palabra referenciada

4 4/71 Memoria Asociativa Memoria asociativa - búsqueda paralela Traducción de dirección (p, d)  Si p está en el registro asociativo, conseguir el frame #  De otra manera consiga el frame # de la tabla de página en la memoria Page #Frame #

5 5/71 Hardware de Paginación con TLB

6 6/71 Tiempo Efectivo de Acceso Associative Lookup =  unidades de tiempo Asuma que el tiempo de ciclo de memoria es 1 microsegundo. La proporción de aciertos- el porcentaje de veces que un número de página es encontrado en los registros asociativos; esta proporción esta relacionada con el número de registros asociativos Radio de Aciertos=  Tiempo Efectivo de Acceso (EAT) EAT = (1 +  )  + (2 +  )(1 –  ) = 2 +  – 

7 7/71 Protección de la Memoria La protección de memoria se implementa asociandola con el bit de protección de cada frame. Un bit válido-inválido se conecta a cada entrada en la tabla de página. "válido" indica que la página asociada está en el espacio de dirección lógico del proceso, y es así una página legal. "inválido" indica que la página no está en el espacio de dirección lógico del proceso.

8 8/71 El bit Válido (v) o Inválido (I) en la Tabla de Página

9 9/71 Páginas Compartidas Código compartido  Una copia de sólo lectura del código compartido entre procesos (p. ej., editores de textos, recopiladores, sistemas de ventana).  El código compartido debe aparecer en la misma posición en el espacio de dirección lógico de todos los procesos Código y datos privados  Cada proceso guarda (mantiene) una copia separada del código y datos  Las páginas para el código privado y datos pueden aparecer en cualquier parte en el espacio de dirección lógico

10 10/71 Ejemplo de Páginas Compartidas

11 11/71 Tablas de Página y Memoria Virtual La mayoría los computadores soportan un espacio de dirección virtual muy grande  Se usan de 32 a 64 bits para las direcciones lógicas  Si (sólo) 32 bits son usados con páginas de 4KB, una tabla de página puede tener 2 20 entradas La tabla de página completa tomaría demasiada memoria principal. Por lo anterior, también se guardan a menudo tablas de página en memoria virtual y por lo tanto están sujetas a paginación  Cuando un proceso se está ejecutando, parte de su tabla de página debe estar en memoria principal (incluyendo la entrada de tabla de página de la página actualmente en ejecución)

12 12/71 Tabla de Páginas Multinivel Una tabla de página generalmente requerirá para su almacenamiento varias páginas. Una solución es organizar las tablas de página en una jerarquía multinivel  Cuando se usan 2 niveles (Ejem: 386, Pentium), el número de página es dividido en dos números p1 y p2  P1 indexa la tabla del directorio de páginas en memoria principal,en la que cada entrada apunta a una tabla de página, las cuales están indexadas por p2. Las tablas de página, diferentes al directorio de páginas, se intercambiarán (swapped in y swapped out) cuando sea necesario

13 13/71 Tabla de Páginas Multinivel

14 14/71 Tabla de Páginas Multinivel de tres niveles

15 15/71 Tabla de Páginas Invertida Otra solución (PowerPC, IBM Risk 6000) al problema de mantener largas tablas de página, es usar Tabla de Páginas Invertida (IPT) Generalmente se tiene solamente, un IPT para el sistema entero Hay sólo una entrada de IPT por marco físico (en lugar de uno por página virtual) Esto reduce mucho la cantidad de memoria necesitada para las tablas de página La 1era. entrada del IPT es para el marco #1... la entrada n-ésima del IPT es para el marco #n y, cada uno de estas entradas, contiene el número de página virtual. Así, esta tabla está invertida

16 16/71 Tabla de Páginas Hash Común en espacios de dirección> 32 bits El número de página virtual es hashed en una tabla de página. Esta tabla de página contiene una cadena de elementos hashing a la misma posición(ubicación). Los números de las páginas virtuales son comparados en esta cadena que busca una coincidencia. Si es encontrada, el marco físico correspondiente es extraído.

17 17/71 Tabla de Páginas Hash

18 18/71 Tabla de Páginas Invertida El ID del proceso con el número de página virtual, podría ser usado para buscar en la IPT y obtener el # de marco Para mejorar el rendimiento, se usa hashing para obtener una entrada de la tabla hash, la cual apunta a una entrada en la IPT  Un fallo de página ocurre si no se encuentra correspondencia  Se usa encadenamiento, para gestionar el hashing overflow

19 19/71 El Problema del Tamaño de Página El tamaño de página es definido por hardware; siempre una potencia de 2 para una traducción de dirección lógica a física, más eficiente. Pero exactamente cual tamaño usar, es una pregunta difícil:  Un tamaño de página grande es bueno debido a que, para un tamaño de página pequeño, más páginas son requeridas por el proceso Más páginas por proceso significan tablas de página más grandes. Entonces, una porción grande de las tablas de página debe estar en memoria virtual

20 20/71 El Problema del Tamaño de Página El tamaño de página es definido por hardware; siempre una potencia de 2 para una traducción de dirección lógica a física, más eficiente. Pero exactamente cual tamaño usar, es una pregunta difícil:  Un tamaño de página pequeño es bueno para minimizar la fragmentación interna  Un tamaño de página grande es bueno debido a que los discos son diseñados para transferir eficientemente bloques grandes de datos  Tamaños de página grandes significan menos páginas en memoria principal; esto incrementa la rata de aciertos del TLB

21 21/71 El Problema del Tamaño de Página Con un tamaño de página muy pequeño, cada página corresponde al código que realmente se usa: las fallas (faults) son bajas Aumentar el tamaño de página causa que cada página tenga más código que no se usa. Surgen fallos de página Los fallos de página disminuyen, si el tamaño de página se aproxima al tamaño de todo el proceso (punto P). Cuando el tamaño de una página es igual al tamaño del proceso entero, no hay fallos de página

22 22/71 El Problema del Tamaño de Página El porcentaje de fallos de página, también es determinado por el número de marcos asignado por el proceso Los fallos de página caen a un valor razonable cuando W marcos son asignados Caen a 0 cuando el número (N) de marcos es tal que el proceso está completamente en memoria

23 23/71 El Problema del Tamaño de Página Los tamaños de página de 1KB a 4KB normalmente son más usados Pero el problema es no trivial. De lo anterior, algunos procesadores están agregando la posibilidad de soportar múltiples tamaños de página. Ejemplo:  Pentium soporta 2 tamaños: 4KB o 4MB  R4000 apoyan 7 tamaños: de 4KB a 16MB

24 24/71 ? M.P. Paginación ( Problemática del Intercambio ) ¿Su gran restricción? Exigir que un Pi esté entero en M.P. para poder ejecutarse AUn Pi más grande que la M.P. no podrá ejecutarse BSi {Procesos preparados} aumenta, no cabe en M.P.  Trasiego CEl intercambio Disco  M.P. es mucho (dos procesos enteros) Compilador:1 Análisis léxico 2 Análisis sintáctico 3 Análisis semántico 4 Generación de código ¿Solución general? Overlays (solapamientos) Trocear

25 25/71 M.P. Paginación ( Problemática del Intercambio ) Solución  Darle al usuario la sensación de tener una M.P. enorme El Pentium 4 (32 bits de direcciones)  4GB Un PC medio dispone tan sólo de  512MB 8 veces menos M.P. Espacio de dir. del P 4 Espacio de Direcciones Reales del PC Teóricamente podemos escribir programas pensando en el Pentium 4 y 4GB ¿ Cómo funciona todo esto ? Arquitectura subyacente M.V. M.P. Tendremos una Memoria Virtual de 4GB y mis programas se ejecutan aunque tenga menos Memoria Principal (512MB) siempre que quepan en la memoria virtual.

26 26/71 MEMORIA VIRTUAL Paginación ( Arquitectura Subyacente ) CPU dv Bus Datos M.V. La Memoria Virtual reside físicamente en memoria secundaria M.P. ¡ No caben ! Principio de localidad: Meto en M.P. los trozos que hagan falta para ejecutar Pr y Pv

27 27/71 Paginación ( Arquitectura Subyacente ) CPU dv Bus Datos M.V. M.P. La M.V. se divide en páginas (1000B?) 0 1 2 3 5 6 7 8 9 La M.P. se divide en marcos 028 6000 MMU fallo 9 S.O. ? 9500 7500 6 dr Traducir dv  dr 3000 ¿Cachés?

28 28/71 Paginación ( Arquitectura Subyacente ) Resumiendo: M.V. en disco y gestionado como un sistema de particiones variables (los trozos “granularidad” de M.V. son páginas) Las páginas de M.V. necesarias para que se ejecute un Pi están en la M.P. en uno cualquiera de sus marcos ¡ Principio de localidad espacial y temporal ! Función de traducción (dv  dr) implementada en Hw ¡ MMU interna vs externa ! Las páginas se intercambian MV  MP (Falta de Página) gracias a la intervención del S.O. ¿ Cómo hacer la traducción dv  dr ?

29 29/71 Software del sistema operativo Política de Lectura  Paginación por Demanda  Paginación Previa Política de Ubicación  Para sistemas con segmentación pura: Primer-ajuste, próximo-ajuste, mejor-ajuste (relevante)  Para paginación y segmentación/paginada: El hardware decide dónde poner la página (no relevante) Política de Reemplazo  Usada hace más tiempo (Least recently used) (LRU)  Primera en entrar, primera en salir (First-in, first-out) (FIFO)  Política del reloj (Clock)

30 30/71 Software del sistema operativo El software de gestión de memoria depende de si el hardware soporta paginación, segmentación o ambos Los sistemas de segmentación pura son raros. Los segmentos usualmente son paginados. Esto implica que los problemas de gestión de memoria son entonces aquéllos presentes en la paginación Nos concentraremos así en problemas asociados con paginación Para lograr un buen performance, se necesita un porcentaje bajo de fallo de páginas

31 31/71 Políticas de lectura (fetch) Determina cuando una página debe traerse a memoria principal. Dos políticas comunes:  Paginación por Demanda: se trae una página a memoria principal sólo cuando se hace referencia a una posición en dicha página Muchos fallos de página cuando un proceso se ejecute por primera vez; pero, debe disminuir a medida que se traigan a memoria más páginas (principio de cercanía)

32 32/71 Políticas de lectura (fetch) Determina cuando una página debe traerse a memoria principal. Dos políticas comunes:  Paginación Previa: se cargan otras páginas distintas a la demandadas, debido a un fallo de página El principio de cercanía sugiere que sea más eficaz traer páginas que residen contiguamente en disco Eficiencia no establecida definitivamente cuando las páginas extras traídas, no son “frecuentemente” referenciadas

33 33/71 Políticas de Ubicación Determina donde va a residir una parte de un proceso en memoria real Para sistemas con segmentación pura:  Primer-ajuste, próximo-ajuste, mejor-ajuste... son posibles opciones (un problema real) Para paginación (y paginación combinada con segmentación):  El hardware decide dónde poner la página: la localización del marco escogido no es relevante, desde que todos los marcos de memoria son equivalentes (no es un problema)

34 34/71 Políticas de Reemplazo Trata de la selección de la página a remplazar en memoria principal, cuando se debe cargar una nueva página Esto ocurre siempre que la memoria principal esté llena (ningún marco libre disponible) Ocurre frecuentemente debido a que el SO intenta traer a memoria principal tantos procesos como pueda, para aumentar el nivel de multiprogramación

35 35/71 Políticas de Reemplazo No todas las páginas en memoria principal pueden ser seleccionadas para reemplazo Algunos marcos que están bloqueados y no pueden paginarse (paged out):  Mucho del kernel es mantenido en marcos bloqueados; así como también, las estructuras clave de control y buffers de I/O El SO podría decidir que el conjunto de páginas consideradas para el reemplazo debe ser:  Limitado al proceso que ha sufrido fallo de página  El conjunto de todas las páginas en marcos no bloqueados (unlocked)

36 36/71 Políticas de Reemplazo La decisión para el conjunto de páginas a ser consideradas para el reemplazo, está relacionada con la estrategia de gestión del conjunto residente:  ¿Cuántos marcos de página serán asignados a cada proceso? Esto se discutirá más tarde No importa cual es el conjunto de páginas considerado para el reemplazo, la política de reemplazo se trata de algoritmos que escogerán la página dentro de tal conjunto

37 37/71 Algoritmos básicos para la política de reemplazo La política óptima selecciona para el reemplazo, la página que tiene que esperar una mayor cantidad de tiempo, hasta que se produzca la próxima referencia  Produce el menor número de fallos de página  Imposible de implementar (el OS necesita conocimiento exacto de los sucesos futuros), pero sirve como un standard con el que comparar los otros algoritmos: Usada hace más tiempo (Least recently used) (LRU) Primera en entrar, primera en salir (First-in, first-out) (FIFO) Política del reloj (Clock)

38 38/71 La Política LRU Reemplaza la página que no ha sido referenciada desde hace más tiempo  Debido al principio de cercanía, ésta debería ser la página con menor probabilidad de ser referenciada en un futuro cercano.  Afina casi tanto como la política óptima Ejemplo: Un proceso de 5 páginas con un OS que fija el tamaño del conjunto residente en 3

39 39/71 Nota sobre el conteo de fallos de página Cuando la memoria principal está vacía, cada nueva página traída, es el resultado de un fallo de página Con el propósito de comparar los diferentes algoritmos, no se contaran esos fallos de página iniciales  Porque el número de éstos es el mismo para todos los algoritmos Pero, en contraste con lo que se muestra en las figuras, estas referencias iniciales están produciendo realmente fallos de página

40 40/71 Implementación de la Política LRU Cada página podría etiquetarse (en la entrada de la tabla de página), con el instante de su última referencia a memoria. Esto tendría que hacerse para cada referencia a memoria, tanto para instrucciones, como para datos La página de LRU es aquella con el valor de tiempo más pequeño (necesita ser investigado en cada fallo de página) Esto requeriría hardware caro y gran cantidad de sobrecarga (overhead) Por consiguiente, muy pocos sistemas computadores proveen suficiente soporte de hardware para una verdadera política de reemplazo LRU En cambio, se usan otros algoritmos

41 41/71 La Política de FIFO Trata marcos de página asignados a un proceso como un buffer circular  Cuando el buffer está lleno, la página más vieja se reemplaza. De lo anterior: primero-en-entrar, primero- en-salir Esto no es necesariamente igual al LRU Una página frecuentemente usada es a menudo la más vieja, entonces ésta será expulsada (paged out) repetidamente por FIFO  Simple de implementar Requiere sólo un apuntador que circule a través de los marcos de página del proceso

42 42/71 Comparación de FIFO con LRU LRU reconoce que las páginas 2 y 5 son referenciadas más frecuentemente que las otras, mientras que FIFO no lo hace FIFO: rendimiento relativamente pobre

43 43/71 Política del Reloj El conjunto de marcos candidatos para reemplazo es considerado como un buffer circular Cuando una página se reemplaza, un apuntador es puesto (set) a apuntar al próximo marco en el buffer Un bit de uso por cada marco se pone en 1 siempre que  Una página es primero cargada en el marco  La página correspondiente es referenciada Cuando es tiempo de reemplazar una página, el primer marco encontrado con el bit de uso puesto en 0 se reemplaza  Durante la búsqueda para el reemplazo, cada bit de uso puesto en 1, se cambia a 0

44 44/71 La Política del Reloj: un ejemplo

45 45/71 Comparación de Reloj con FIFO y LRU Un asterisco indica que el correspondiente bit de uso se pone en 1 Reloj protege a las páginas frecuentemente referenciadas, poniendo el bit de uso en 1 en cada referencia

46 46/71 Comparación de Reloj con FIFO y LRU Los experimentos numéricos tienden a mostrar que el performance de Reloj está cerca del LRU Se han realizado experimentos cuando el número de marcos asignados a cada proceso es fijo y, cuando son consideradas para el reemplazo, páginas locales al proceso de fallo-de-página  Cuando pocos (6 a 8) marcos son asignados por proceso, hay casi un factor de 2 de fallos de página entre LRU y FIFO  Este factor se reduce cerca de 1 cuando varios (más de 12) marcos son asignados. (Pero entonces más memoria principal es necesitada para soportar el mismo nivel de multiprogramación)

47 47/71 Almacenamiento Intermedio de Páginas (Page Buffering) Las páginas a ser reemplazadas son mantenidas durante algún tiempo en memoria principal, para resguardarse de la ejecución de algoritmos de reemplazo relativamente pobres tales como FIFO Dos listas de apuntadores son mantenidas: cada entrada apunta a un marco seleccionado para reemplazo  Una lista de páginas libres para marcos que no se han modificado desde que la página fue traída (no necesitan ser expulsadas)  Una lista de páginas modificadas para marcos que se han modificado (necesita escribirse a disco)

48 48/71 Almacenamiento Intermedio de Páginas (Page Buffering) Un marco a ser reemplazado tiene un apuntador añadido al final de una de las listas y, el bit de presencia se pone en cero en la correspondiente entrada de la tabla de página  Pero la página permanece en el mismo marco de memoria Por cada fallo de página las dos listas se examinan para ver primero, si la página necesitada todavía está en memoria principal  Si está, sólo se necesita modificar el bit de presencia en la entrada correspondiente de la tabla de página (y quitar la entrada en la lista de página pertinente)

49 49/71 Almacenamiento Intermedio de Páginas (Page Buffering)  Si no está, entonces la página necesitada se trae, se pone en el marco apuntado por el tope de la lista de marcos libres (borrando la página que estaba allí)  El tope de la lista de marcos libres se mueve a la próxima entrada  El número de marco en la entrada de tabla de página podría usarse para examinar las dos listas, o cada entrada de la lista podría contener el id del proceso y número de la página del marco ocupado La lista modificada también sirve para escribir a disco por bloques, las páginas modificadas (en lugar de individualmente)

50 50/71 Políticas de vaciado (Cleaning Policy) ¿Cuándo una página modificada debería ser escrita a disco? Vaciado por demanda (Demand cleaning)  Una página sólo se escribe disco, cuando su marco se ha seleccionado para reemplazo Sin embargo, un proceso que sufre una fallo de página, puede tener que esperar por 2 transferencias de página Vaciado Previo (Precleaning)  Escribe páginas modificadas antes de que se necesiten sus marcos, de forma que las páginas puedan escribirse por lotes (batches) Sin embargo, tiene poco sentido escribir a disco tantas páginas, para encontrarse con que la mayoría de ellas han sido de nuevo modificadas antes de ser reemplazadas

51 51/71 Políticas de vaciado (Cleaning Policy) Una solución mejor puede lograrse con almacenamiento intermedio de páginas  Recuerde que las páginas reemplazadas o se mantienen en una lista libre (no modificadas) o en una lista de modificadas  Las páginas de la lista de modificadas, pueden escribirse periódicamente por lotes y luego estas pueden trasladarse a la lista libre  Un buen compromiso debido a que: No todas las páginas modificadas (dirty pages) se escriben a disco; excepto, solamente aquellas escogidas para el reemplazo La escritura se hace por lotes

52 52/71 Tamaño del Conjunto Residente (Resident Set Size) El OS debe decidir cuántos marcos de página asignar a un proceso  Mayor porcentaje de fallos de página si pocos marcos son asignados  Nivel de multiprogramación bajo si muchos marcos se asignan

53 53/71 Tamaño del Conjunto Residente (Resident Set Size) Política de asignación-fija  Asigna un número fijo de marcos que permanecen constantes con el tiempo El número está determinado en momento de carga (instante de creación del proceso) y depende del tipo de proceso (interactivo, batch, tipo de aplicación) o está en función de las directrices del programador o del administrador del sistema

54 54/71 Tamaño del Conjunto Residente (Resident Set Size) Política de asignación-variable  El número de marcos asignados a un proceso, puede variar con el tiempo Puede aumentar si la proporción de fallo de página es alta Puede disminuir si el porcentaje de fallo de página es muy baja  Requiere más overhead del SO, para evaluar el comportamiento de los procesos activos

55 55/71 Alcance del reemplazo Es el conjunto de marcos a ser considerado para el reemplazo, cuando ocurre un fallo de página Política de reemplazo local  Escoge solamente entre los marcos que son asignados al proceso que emitió el fallo de página Política de reemplazo global  Cualquier marco no bloqueado (unlocked) es un candidato para el reemplazo, independientemente del proceso al que pertenezca Consideraciones de las posibles combinaciones de las políticas del alcance del reemplazo y, las políticas del tamaño del conjunto residente

56 56/71 Asignación fija + reemplazo Local El número de marcos asignados a un proceso es fijo  Determinado en momento de carga y depende de tipo de aplicación Cuando un fallo de página ocurre: la página a reemplazar se elige de entre los marcos asignados al proceso  El número de marcos asignados es así constante  Pueden usarse los algoritmos de reemplazo anteriores Problema: difícil decidir por adelantado un buen número para asignar marcos  Si es demasiado bajo el porcentaje de fallo de páginas será alto  Si es demasiado grande el nivel de multiprogramación será demasiado bajo

57 57/71 Asignación fija + alcance Global Imposible de lograr  Si todos los marcos no bloqueados (unlocked) son candidatos para el reemplazo, el número de marcos asignados a un proceso necesariamente variará con el tiempo

58 58/71 Asignación variable + alcance Global Simple de implementar--adoptado por muchos OS (como Unix SVR4) Una lista de marcos libres se mantiene  Cuando un proceso emite un fallo de página, un marco libre (de esta lista) se asigna a él  Así pues, los procesos que producen fallos de página incrementan gradualmente su tamaño, lo que ayuda a reducir el número global de fallos de página en el sistema  La escogencia del proceso que perderá una página de su conjunto residente (perderá un marco) es arbitraria: lejos de ser óptimo

59 59/71 Asignación variable + alcance Global El almacenamiento intermedio de páginas puede aliviar este problema por cuanto, una página puede ser recuperada si se produce una referencia antes de que se escriba el bloque con el siguiente grupo de páginas

60 60/71 Asignación variable + alcance Local Puede ser la mejor combinación (usado por Windows NT) Asigna en tiempo de carga un cierto número de marcos a un nuevo proceso, basado en el tipo de aplicación, necesidades del programa u otros criterios  La asignación puede cubrirse tanto con paginación previa, como con paginación por demanda

61 61/71 Asignación variable + alcance Local Cuando un fallo de página ocurre, seleccione la página a reemplazar del conjunto residente del proceso que sufre la falla Periódicamente reevalúe la asignación otorgada al proceso y, aumente o disminuya para mejorar el performance global

62 62/71 Estrategia del conjunto de trabajo (The Working Set Strategy ) Es un método de asignación-variable con alcance local, basado en principio de localidad (cercanía) de referencias La estrategia del conjunto de trabajo para un proceso en el tiempo t, W(D,t), es el conjunto de páginas que han sido referenciadas en las últimas D unidades de tiempo virtual

63 63/71 Estrategia del conjunto de trabajo (The Working Set Strategy )  Tiempo virtual = tiempo que transcurre (time elapsed) mientras el proceso está realmente en ejecución (se puede considerar el número de instrucciones ejecutadas)  D es una ventana de tiempo para la observación del proceso  W(D,t) es una aproximación de la localidad del programa

64 64/71 Estrategia del conjunto de trabajo (The Working Set Strategy ) El conjunto de trabajo de un proceso crece cuando empieza a ejecutarse Luego se estabiliza por el principio de cercanía Crece de nuevo cuando el proceso entra en una nueva ubicación (periodo de transición)  Hasta cierto punto donde el conjunto de trabajo contiene páginas de dos ubicaciones Luego desciende después de mucho tiempo consumido en la nueva ubicación

65 65/71 Estrategia del conjunto de trabajo (The Working Set Strategy ) El concepto del conjunto de trabajo hace pensar en la siguiente estrategia, para determinar el tamaño del conjunto residente  Supervise el conjunto de trabajo para cada proceso  Periódicamente quite del conjunto residente de un proceso, esas páginas que no están en el conjunto de trabajo  Cuando el conjunto residente de un proceso es menor que su conjunto de trabajo, asigne más marcos a él Si no están disponibles suficientes marcos libres, suspenda el proceso (hasta que más marcos estén disponible)  Entonces: un proceso sólo puede ejecutarse si su conjunto de trabajo está en memoria principal

66 66/71 Estrategia del conjunto de trabajo (The Working Set Strategy ) Problemas prácticos con la estrategia del conjunto de trabajo  La medida del conjunto de trabajo para cada proceso no es práctica Es necesario marcar (time stamp) las páginas referenciadas en cada referencia a memoria Es necesario mantener una cola ordenada en el tiempo de páginas referenciadas de cada proceso  El valor óptimo para D es desconocido y, en cualquier caso, variable Solución: ¡en lugar de monitorear el conjunto de trabajo, monitoree el porcentaje de fallos de página de un proceso!

67 67/71 Estrategia de Frecuencia de fallo de Página (The Page-Fault Frequency Strategy) Defina un limite superior U y un limite inferior L para los porcentajes de fallo de página Asigne más marcos a un proceso si el porcentaje de fallo es mayor que U Asigne menos marcos si el porcentaje de fallo es < L El tamaño del conjunto residente debe estar cerca del tamaño del conjunto de trabajo W El proceso se suspenderá si el PFF (Page Fault Frecuency) > U y no hay marcos libres disponibles

68 68/71 Control de carga Determina el número de procesos que estarán residentes en memoria principal (grado de multiprogramación)  Muy pocos procesos: a menudo todos los procesos se bloquearán y el procesador estará ocioso  Demasiados procesos: el tamaño medio del conjunto residente de cada proceso será demasiado pequeño y la rapidez de fallo de páginas resultará en: hiperpaginación (thrashing)

69 69/71 Control de carga Un algoritmo de conjunto de trabajo o frecuencia de fallo de página implícitamente incorpora control de carga  Solamente se permitirán ejecutar a esos procesos cuyo conjunto residente es suficientemente grande. Otro enfoque es ajustar explícitamente el grado (nivel) de multiprogramación, para que el tiempo medio entre fallos de página sea igual al tiempo medio exigido para procesar un fallo de página  Algunos estudios de performance indican que éste es el punto donde el uso del procesador alcanza un máximo

70 70/71 Suspensión de procesos Control de carga explícito requiere que a veces se expulsen (suspenda) los procesos Posibles criterios de selección de víctima:  Procesos con fallos de página Este proceso puede no tener su conjunto de trabajo en memoria principal; en cuyo caso, dicho proceso se bloqueará de todas formas  Ultimo proceso activado Este es el proceso con menos posibilidades de tener su conjunto de trabajo residente

71 71/71 Suspensión de procesos Posibles criterios de selección de víctima:  Proceso con el conjunto residente más pequeño Este proceso exige el menor esfuerzo futuro para volver a cargar el conjunto residente  Proceso más grande Esta alternativa obtiene la mayor cantidad de marcos libres en una memoria muy ocupada, haciendo poco probable más desactivaciones en breve


Descargar ppt "Memoria virtual. 2/71 Implementación de la Tabla de Páginas La Tabla de Páginas se mantiene en Memoria Principal. El Page-Table Base Register (PTBR) apunta."

Presentaciones similares


Anuncios Google