Ejercicios resueltos: Page Replacement
🎯 Al terminar podrás
- Simular FIFO, OPT, LRU y Clock en una tabla referencia × frames y contar los fallos sin errores de convención.
- Mostrar la anomalía de Belady con números.
- Calcular el tamaño de una tabla de páginas a partir del espacio virtual, el tamaño de página y el tamaño de la PTE.
- Diseñar una PTE para Clock y simularlo dejando el puntero y los bits de uso explícitos.
Antes necesitas: Reemplazo (con escalera de práctica) · Paginación
- Examen cronométrate y no abras la solución hasta terminar
- Simulador predice el estado antes de pulsar el paso siguiente
Pregunta 1 · FIFO, OPT, LRU y Clock con 3 frames
Sección titulada «Pregunta 1 · FIFO, OPT, LRU y Clock con 3 frames»Referencias: A B D C B E D B D B A C B C A C.
Reemplazo de páginas paso a paso
Escribe la cadena de referencias, elige cuántos frames hay y el algoritmo. «F» marca un fallo de página; en Clock, el * es el bit de uso y ▸ es la posición del puntero.
| ref | A | B | D | C | B | E | D | B | D | B | A | C | B | C | A | C |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| f0 | A | A | A | C | C | C | C | C | D | D | D | D | B | B | B | B |
| f1 | · | B | B | B | B | E | E | E | E | E | A | A | A | A | A | A |
| f2 | · | · | D | D | D | D | D | B | B | B | B | C | C | C | C | C |
| fallo | F | F | F | F | F | F | F | F | F | F |
Fallos según el número de frames
| algoritmo | 1 fr | 2 fr | 3 fr | 4 fr | 5 fr | 6 fr | 7 fr |
|---|---|---|---|---|---|---|---|
| FIFO | 16 | 13 | 10 | 7 | 5 | 5 | 5 |
| OPT | 16 | 9 | 7 | 6 | 5 | 5 | 5 |
| LRU | 16 | 12 | 8 | 7 | 5 | 5 | 5 |
| Clock | 16 | 13 | 9 | 8 | 5 | 5 | 5 |
Solución: FIFO = 10, OPT = 7, LRU = 8, Clock = 9 fallos
FIFO (10 fallos)
OPT (7 fallos)
Por ejemplo, en la cuarta referencia (C), el futuro es B E D B D B A…: A es la que se usa más tarde, así que sale A.
LRU (8 fallos)
Clock (9 fallos). El punto verde en la esquina de cada casilla es el bit de uso en 1.
Por ejemplo, en la cuarta referencia (C) los tres tienen u = 1. El puntero da una vuelta completa poniéndolos en 0, vuelve al frame 0 y reemplaza a A. Es el caso en que Clock se comporta como FIFO.
Comparación: OPT (7) < LRU (8) < Clock (9) < FIFO (10). Es el orden esperable: Clock aproxima a LRU con un solo bit.
Peldaño 4 · Variantecambia una condición: ¿sigue valiendo lo anterior?
Variante de P1: la misma cadena con 4 frames (y con 2)
Antes de simular, predice: ¿todos los algoritmos bajan de fallos con 4 frames? Después compruébalo en el simulador cambiando el número de frames.
Comparar (verificado con un script)
| Frames | FIFO | LRU | OPT | Clock |
|---|---|---|---|---|
| 2 | 13 | 12 | 9 | 13 |
| 3 | 10 | 8 | 7 | 9 |
| 4 | 7 | 7 | 6 | 8 |
Con esta cadena todos mejoran al agregar frames: aquí no aparece la anomalía de Belady. Que pueda aparecer con FIFO no significa que aparezca siempre: P2 es una cadena construida justamente para provocarla.
Pregunta 2 · FIFO con 3 y 4 frames
Sección titulada «Pregunta 2 · FIFO con 3 y 4 frames»Referencias: A B C D A B E A B C D E.
Solución: 9 fallos con 3 frames y 10 con 4 (anomalía de Belady)
3 frames: 9 fallos
4 frames: 10 fallos
Comparación: con más memoria hay más fallos. Es la anomalía de Belady (es la cadena clásica de su artículo de 1969).
Con 4 frames, FIFO mantiene A y B «viejas» hasta que justo se necesitan. Con 3, el orden de expulsión coincide mejor con el uso. FIFO no es un algoritmo de pila: el contenido con 3 frames no está incluido en el de 4.
Con la misma cadena: LRU 10 → 8 y OPT 7 → 6 (no tienen la anomalía); Clock 9 → 10 (también la tiene). Compruébalo en el simulador con «Belady (P2)»: la tabla inferior marca en rojo los saltos.
Pregunta 3 · Memoria virtual de 6 GB, páginas de 8 kB y PTE de 6 B
Sección titulada «Pregunta 3 · Memoria virtual de 6 GB, páginas de 8 kB y PTE de 6 B»Solución: 786 432 páginas; tabla de 4.5 MiB
- Páginas virtuales:
- Tamaño de la tabla: una PTE por página virtual.
Es decir, páginas de 8 kB solo para la tabla de un proceso.
Ojo: 6 GB no es potencia de 2. Se necesitan bits de dirección virtual, que direccionan 8 GB. Si el enunciado tomara la tabla «completa» para 33 bits, serían entradas × 6 B = 6 MiB. Declara cuál usas. La pregunta dice «memoria virtual de 6 GB», así que lo natural es 786 432 páginas.
Pregunta 4 · PTE para Clock (10-10-12) y simulación con 4 frames
Sección titulada «Pregunta 4 · PTE para Clock (10-10-12) y simulación con 4 frames»Formato de la PTE
- Dirección virtual:
10 | 10 | 12. Offset de 12 bits, así que la página es de 4 KB. 10 bits por nivel dan 1024 entradas por tabla, y con PTE de 4 B cada tabla ocupa 4 KB: una página. - Dirección física de 32 bits: el número de frame tiene 32 − 12 = 20 bits.
- La PTE de 32 bits tiene 20 bits de frame más 12 bits de control:
Los números de arriba son las posiciones de bit. El frame ocupa los 20 bits altos y los bits de control, los de abajo.
- V (válido/presente): la página está en RAM.
- U (uso/referenciado): imprescindible para Clock. Lo pone en 1 el hardware al acceder y lo apaga el puntero del reloj.
- M (modificado/dirty): no es necesario para Clock básico, pero sí para Clock mejorado y para saber si hay que escribir la víctima.
- W/X (o R/W/X): protección.
- Los bits libres pueden usarse para usuario/supervisor, caché deshabilitada, etc.
Simulación Clock con 4 frames: A B C A C D B D A E B F
Los dos momentos clave:
- E (10.ª referencia): los 4 frames tienen u = 1 y el puntero está en f0. Da una vuelta poniendo todo en 0 y reemplaza A por E en f0. El puntero queda en f1.
- B (11.ª): acierto, así que u(B) = 1.
- F (12.ª): el puntero está en f1. B tiene u = 1: se pone en 0 y avanza. C tiene u = 0: se reemplaza C por F. El puntero queda en f3.
Respuesta:
| Frame | Página | Bit de uso |
|---|---|---|
| f0 | E | 1 |
| f1 | B | 0 |
| f2 | F | 1 |
| f3 | D | 0 |
El puntero queda en el frame 3 (D) y hubo 6 fallos. Se puede comprobar con el preset «Ejercicio P4» del simulador.
Si tu profesor usa otra convención (por ejemplo, u = 0 al cargar), el contenido final puede cambiar. Escribe la convención en tu respuesta.
📈 ¿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 ·sem_9/11-OSL-Ejercicios_Page_Replacement.pdf · Soluciones propias verificadas con dos simuladores independientes (el de esta web y un script en Python)