Ir al contenido

Ejercicios resueltos: Page Replacement

🎯 Al terminar podrás

  1. Simular FIFO, OPT, LRU y Clock en una tabla referencia × frames y contar los fallos sin errores de convención.
  2. Mostrar la anomalía de Belady con números.
  3. 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.
  4. 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.

refABDCBEDBDBACBCAC
f0AAACCCCCDDDDBBBB
f1·BBBBEEEEEAAAAAA
f2··DDDDDBBBBCCCCC
falloFFFFFFFFFF
Paso 16: C ya está en el frame 2: acierto.
Fallos10
Aciertos6
Tasa de fallos63 %

Fallos según el número de frames

algoritmo1 fr2 fr3 fr4 fr5 fr6 fr7 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
Con esta cadena ningún algoritmo empeora al agregar frames.
Solución: FIFO = 10, OPT = 7, LRU = 8, Clock = 9 fallos

FIFO (10 fallos)

refABDCBEDBDBACBCACf0AAACCCCCDDDDBBBBf1BBBBEEEEEAAAAAAf2DDDDDBBBBCCCCCfalloFFFFFFFFFF
Verde: la página que entra en ese fallo. El punto verde marca el bit de uso en 1, si la traza lo tiene. Total: 10 fallos.

OPT (7 fallos)

refABDCBEDBDBACBCACf0AAACCEEEEEAAAAAAf1BBBBBBBBBBBBBBBf2DDDDDDDDDCCCCCfalloFFFFFFF
Verde: la página que entra en ese fallo. El punto verde marca el bit de uso en 1, si la traza lo tiene. Total: 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)

refABDCBEDBDBACBCACf0AAACCCDDDDDCCCCCf1BBBBBBBBBBBBBBBf2DDDEEEEEAAAAAAfalloFFFFFFFF
Verde: la página que entra en ese fallo. El punto verde marca el bit de uso en 1, si la traza lo tiene. Total: 8 fallos.

Clock (9 fallos). El punto verde en la esquina de cada casilla es el bit de uso en 1.

refABDCBEDBDBACBCACf0AAACCCCBBBBBBBBBf1BBBBBDDDDDCCCCCf2DDDEEEEEAAAAAAfalloFFFFFFFFF
Verde: la página que entra en ese fallo. El punto verde marca el bit de uso en 1, si la traza lo tiene. Total: 9 fallos.

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)
FramesFIFOLRUOPTClock
21312913
310879
47768

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.

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

refABCDABEABCDEf0AAADDDEEEEEEf1BBBAAAAACCCf2CCCBBBBBDDfalloFFFFFFFFF
Verde: la página que entra en ese fallo. El punto verde marca el bit de uso en 1, si la traza lo tiene. Total: 9 fallos.

4 frames: 10 fallos

refABCDABEABCDEf0AAAAAAEEEEDDf1BBBBBBAAAAEf2CCCCCCBBBBf3DDDDDDCCCfalloFFFFFFFFFF
Verde: la página que entra en ese fallo. El punto verde marca el bit de uso en 1, si la traza lo tiene. Total: 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:
6 GB8 kB=6⋅230213=6⋅217=3⋅218=786 432\frac{6\ \text{GB}}{8\ \text{kB}} = \frac{6 \cdot 2^{30}}{2^{13}} = 6 \cdot 2^{17} = 3 \cdot 2^{18} = \mathbf{786\,432}
  • Tamaño de la tabla: una PTE por página virtual.
786 432×6 B=4 718 592 B=4.5 MiB786\,432 \times 6\ \text{B} = 4\,718\,592\ \text{B} = \mathbf{4.5\ MiB}

Es decir, 4 718 592/8192=5764\,718\,592 / 8192 = 576 páginas de 8 kB solo para la tabla de un proceso.

Ojo: 6 GB no es potencia de 2. Se necesitan ⌈log⁡2(6⋅230)⌉=33\lceil \log_2(6 \cdot 2^{30}) \rceil = 33 bits de dirección virtual, que direccionan 8 GB. Si el enunciado tomara la tabla «completa» para 33 bits, serían 2202^{20} 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:
3112nº de frame (20 bits)115libres4M3U2W1X0VU: imprescindible para Clockframe (20) + offset (12) = dirección física de 32 bitsM sirve para Clock mejorado; W y X son protección; V dice si está en RAM.

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
refABCACDBDAEBFf0AAAAAAAAAEEEf1BBBBBBBBBBBf2CCCCCCCCCFf3DDDDDDDfalloFFFFFF
Verde: la página que entra en ese fallo. El punto verde marca el bit de uso en 1, si la traza lo tiene. Total: 6 fallos.

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:

FramePáginaBit de uso
f0E1
f1B0
f2F1
f3D0

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)