Conjunto residente, working set, limpieza y control de carga
🎯 Al terminar podrás
- Clasificar una política como fija o variable y local o global, y explicar por qué fija + global es imposible.
- Calcular el working set W(t, Δ) de una cadena para un Δ dado y su tamaño promedio.
- Describir cómo PFF y VSWS aproximan el working set, y cuál es el punto débil de PFF.
- Diagnosticar thrashing a partir de síntomas y proponer qué hacer (y qué no sirve).
Antes necesitas: Reemplazo de páginas · Localidad
- Laboratorio sube la escalera: resuelto → completa → solo → variante
- Debate elige una alternativa para el escenario y defiéndela
- Detective escribe tu hipótesis del bug antes de abrir el diagnóstico
Tamaño del conjunto residente
Sección titulada «Tamaño del conjunto residente»Con menos frames por proceso caben más procesos en RAM, así que hay más probabilidad de tener alguno listo. Pero si un proceso tiene muy pocos frames, la tasa de fallos se dispara. Pasado cierto punto, darle más frames casi no mejora nada, por la localidad.
Cómo leerlo: a la izquierda, con muy pocos marcos, el proceso no alcanza a tener su zona de trabajo y falla todo el tiempo. Cuando los marcos cubren su working set, la curva se aplana: dar más ya casi no baja los fallos. Por eso conviene darle a cada proceso lo justo para su working set y usar el resto para otros.
| Asignación | Idea | Problema |
|---|---|---|
| Fija | número fijo de frames por proceso, decidido al crearlo (según el tipo de proceso o lo que pida) | si es poco hay muchos fallos; si es mucho, caben pocos procesos |
| Variable | el número de frames cambia durante la vida del proceso | hay que medir el comportamiento: overhead del SO |
Alcance del reemplazo: local o global
Sección titulada «Alcance del reemplazo: local o global»- Local: la víctima sale del mismo proceso que causó el fallo.
- Global: la víctima puede ser cualquier página no bloqueada de la memoria.
Cómo leerlo: arriba, la RAM antes del fallo (3 marcos de A, 5 de B); abajo, después. Con reemplazo local, A se reemplaza a sí mismo y los tamaños no cambian. Con global, A le quita un marco a B: A crece y B se achica. Ejemplo propio.
| Reemplazo local | Reemplazo global | |
|---|---|---|
| Asignación fija | el número de frames no cambia y la víctima sale de las páginas del propio proceso | imposible: si se le quita una página a otro, el tamaño ya no sería fijo |
| Asignación variable | se reevalúa cada cierto tiempo cuántos frames darle; la víctima sale de los propios | la más fácil y la más usada (por ejemplo, en muchos UNIX): el proceso que falla crece, otro pierde un frame |
Variable + global es simple, pero no tiene forma de saber a quién le conviene quitarle un frame: puede quitárselo a un proceso que lo necesitaba. Se compensa con page buffering: la página quitada queda un tiempo en una lista y se recupera barato.
Variable + local necesita una estrategia para decidir cuántos frames dar. Ahí entra el working set.
Working set
Sección titulada «Working set»Definición (Denning): es el conjunto de páginas referenciadas en las últimas Δ referencias (unidades de tiempo virtual), mirando hacia atrás desde el instante t.
Propiedades:
- : una ventana más grande nunca tiene menos páginas.
- , donde N es el número de páginas del proceso.
- Su tamaño sube durante las transiciones entre fases de localidad (las páginas viejas siguen en la ventana mientras llegan las nuevas) y baja cuando el proceso se estabiliza.
Ejemplo de Stallings (fig. 8.19). Cadena 24 15 18 23 24 17 18 24 18 17 17 15 24 17 24 18. Working set después de cada referencia, para cuatro tamaños de ventana (calculado):
| ref | Δ = 2 | Δ = 3 | Δ = 4 | Δ = 5 |
|---|---|---|---|---|
| 24 | 24 | 24 | 24 | 24 |
| 15 | 24 15 | 24 15 | 24 15 | 24 15 |
| 18 | 15 18 | 24 15 18 | 24 15 18 | 24 15 18 |
| 23 | 18 23 | 15 18 23 | 24 15 18 23 | 24 15 18 23 |
| 24 | 23 24 | 18 23 24 | 15 18 23 24 | 24 15 18 23 |
| 17 | 24 17 | 23 24 17 | 18 23 24 17 | 15 18 23 24 17 |
| 18 | 17 18 | 24 17 18 | 23 24 17 18 | 18 23 24 17 |
| 24 | 18 24 | 17 18 24 | 24 17 18 | 23 24 17 18 |
| 18 | 24 18 | 18 24 | 17 18 24 | 24 17 18 |
| 17 | 18 17 | 24 18 17 | 18 24 17 | 17 18 24 |
| 17 | 17 | 18 17 | 24 18 17 | 18 24 17 |
| 15 | 17 15 | 17 15 | 18 17 15 | 24 18 17 15 |
| 24 | 15 24 | 17 15 24 | 17 15 24 | 18 17 15 24 |
| 17 | 24 17 | 15 24 17 | 17 15 24 | 17 15 24 |
| 24 | 17 24 | 24 17 | 15 24 17 | 17 15 24 |
| 18 | 24 18 | 17 24 18 | 24 17 18 | 15 24 17 18 |
Tamaño promedio: 1.88 · 2.56 · 3.06 · 3.38. Con Δ más grande, el working set crece, pero cada vez menos.
Cómo leerlo: cada barra es el tamaño promedio del working set para una ventana Δ. Los números verdes son lo que se gana al agrandar Δ en 1: cada vez menos. Es la misma forma de la curva «marcos vs fallos»: pasado el working set, más memoria aporta poco.
Peldaño 2 · Complétalofaltan pasos clave: llénalos tú
Complétalo: working set con Δ = 3 para la cadena 1 2 1 3 2 4 4 1
| t | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|
| ref | 1 | 2 | 1 | 3 | 2 | 4 | 4 | 1 |
| W(t, 3) | 1 | 1 2 | 1 2 | 1 2 3 | ? | ? | ? | ? |
Recuerda: se miran las últimas 3 referencias (incluida la actual) y se quitan los repetidos.
Comparar
| t | 5 | 6 | 7 | 8 |
|---|---|---|---|---|
| últimas 3 | 1 3 2 | 3 2 4 | 2 4 4 | 4 4 1 |
| W(t, 3) | 1 2 3 | 2 3 4 | 2 4 | 1 4 |
Tamaños: 1, 2, 2, 3, 3, 3, 2, 2, así que el promedio es 18 / 8 = 2.25. Fíjate en t = 7: la referencia repetida (4 4) achica el working set.
Cómo leerlo: la ventana es un recuadro de Δ casillas que termina en la referencia actual. W son las páginas distintas dentro del recuadro. En t = 7 hay tres referencias pero solo dos páginas distintas; por eso W tiene tamaño 2.
Peldaño 3 · Solosin ayuda; luego compara
Solo: la misma cadena con Δ = 2
Calcula W(t, 2) para cada t y su tamaño promedio. Después verifica la propiedad W(t, 2) ⊆ W(t, 3) en todos los instantes.
Comparar
W(t, 2): 1 · 12 · 12 · 13 · 23 · 24 · 4 · 14. Tamaños: 1, 2, 2, 2, 2, 2, 1, 2, así que el promedio es 14 / 8 = 1.75. En cada t, el conjunto está contenido en el de Δ = 3: una ventana más chica nunca tiene más páginas.
La estrategia del working set:
- Monitorea el working set de cada proceso.
- Quítale periódicamente las páginas que salieron del working set (reemplazo tipo LRU).
- Un proceso solo se ejecuta si su working set cabe completo en RAM.
Problemas prácticos: el pasado no siempre predice el futuro, porque cambia la localidad; medir el working set exacto es caro (habría que registrar cada referencia), y el Δ óptimo es desconocido y varía. Por eso se usan aproximaciones.
Aproximaciones: PFF y VSWS
Sección titulada «Aproximaciones: PFF y VSWS»-
PFF (Page Fault Frequency): cada página tiene un bit de uso. En cada fallo, el SO mira el tiempo virtual desde el fallo anterior:
- si es menor que un umbral F (fallos muy seguidos), agrega la página al conjunto residente: el proceso crece;
- si no, descarta todas las páginas con bit de uso 0 y pone los demás bits en 0: el proceso se encoge.
El punto débil: durante una transición de localidad, las páginas viejas no alcanzan a salir y el conjunto residente se infla.
-
VSWS (Variable-Interval Sampled Working Set): evalúa el working set en instantes de muestreo con tres parámetros:
- M: intervalo mínimo;
- L: intervalo máximo;
- Q: número de fallos permitidos entre muestras.
El intervalo termina al llegar a L, o al llegar a Q fallos si ya pasó M. Así reacciona rápido en las transiciones sin muestrear de más en las fases estables.
Política de limpieza
Sección titulada «Política de limpieza»¿Cuándo se escribe al disco una página modificada?
| Política | Cuándo | Problema |
|---|---|---|
| Por demanda | solo cuando la página es elegida como víctima | el proceso que falló espera dos E/S: escribir la víctima y leer la nueva |
| Precleaning | antes de que haga falta, en lotes | se escriben páginas que quizá se vuelvan a modificar antes de ser expulsadas: E/S desperdiciada |
Mejor solución: page buffering. Las páginas reemplazadas van a dos listas, modificadas y no modificadas. Las modificadas se escriben en lotes y pasan a la lista de no modificadas. De ahí se pueden recuperar si se vuelven a referenciar, o se reutilizan sus frames si se pierden.
Es el mismo esquema de page buffering, visto desde la limpieza: las páginas sucias se escriben en lote (arriba a la derecha) y recién después se reutiliza su frame.
Control de carga y thrashing
Sección titulada «Control de carga y thrashing»El nivel de multiprogramación es el número de procesos residentes en RAM.
- Muy pocos: a menudo todos están bloqueados, así que la CPU queda ociosa.
- Demasiados: cada uno tiene un conjunto residente insuficiente y la tasa de fallos se dispara. Es el thrashing, que Stallings muestra en la fig. 8.21:
- el uso del procesador sube al agregar procesos,
- llega a un máximo,
- y cae en picada: la CPU pasa el tiempo esperando al disco de paginación.
Cómo leerlo: al agregar procesos, la CPU se ocupa más porque casi siempre hay alguno listo. Pasado el máximo, cada proceso tiene muy pocos marcos y vive fallando (zona roja): la CPU se queda esperando al disco. La solución no es agregar procesos sino sacar algunos, para volver a la izquierda del máximo.
Criterios para elegir el nivel:
- Working set: solo se ejecuta un proceso si su working set está residente. Eso regula la carga de forma implícita.
- Criterio L = S (Denning): ajustar la carga para que el tiempo medio entre fallos (L) sea igual al tiempo medio de atender un fallo (S). Así se maximiza el uso del procesador.
- Criterio del 50 %: mantener la utilización del dispositivo de paginación cerca del 50 %.
- Adaptar Clock: si el puntero da vueltas muy rápido, hay escasez de memoria; si gira lento, sobra memoria y caben más procesos.
Si hay que bajar la carga, ¿qué proceso se suspende (se pasa a disco)? Stallings da seis candidatos:
| Candidato | Razón |
|---|---|
| el de menor prioridad | política de planificación |
| el que más fallos está causando | probablemente no tiene su working set residente; suspenderlo libera un dispositivo saturado |
| el último activado | es el que menos probablemente tiene su working set completo |
| el de conjunto residente más pequeño | cuesta poco volverlo a cargar después, aunque perjudica a los procesos de localidad pequeña |
| el más grande | libera más frames de una vez |
| el que tiene más tiempo de ejecución restante | aproxima la política de menor tiempo restante |
Autoevaluación
0/7 correctas · 0 respondidas📈 ¿Qué tan bien lo dominas?
Elige pensando en lo que hiciste, no en lo que leíste. Para marcar 3 tienes que haber resuelto un ejercicio nuevo sin pistas y haberlo justificado. Si solo lo leíste y sientes que «ya entendí», todavía es un 1.
Fuente ·Stallings 9e §8.2 (Resident Set Management, Cleaning Policy, Load Control; figs. 8.19–8.21) · Working set de la fig. 8.19 calculado con un script propio