Ir al contenido

E1 2025-2

Pregunta 1 (4 pts) · Mutex con orden lexicográfico

Sección titulada «Pregunta 1 (4 pts) · Mutex con orden lexicográfico»

N procesos, variables CiC_i (eligiendo), LiL_i (etiqueta) y Xi=(Li+2i) mod 5X_i = (L_i + 2i) \bmod 5. Entrada: Ci←C_i \leftarrow true; Li←1+max⁡kLkL_i \leftarrow 1 + \max_k L_k; calcula XiX_i; Ci←C_i \leftarrow false; para cada j≠ij \ne i: wait until CjC_j = false ∧ (Lj=0L_j = 0 ∨ (Lj,j,Xj)≻(Li,i,Xi)(L_j, j, X_j) \succ (L_i, i, X_i)). Salida: Li←0L_i \leftarrow 0.

  1. ¿Exclusión mutua? 2. ¿Deadlock-free? 3. ¿Starvation-free? 4. ¿Para qué sirve XiX_i?
Ver solución

Es Bakery de Lamport. ✔ mutex, ✔ deadlock-free, ✔ starvation-free (FCFS). XiX_i nunca participa, porque j≠ij \neq i ya rompe todos los empates. Es un distractor que no afecta ni la seguridad ni el progreso. Demostraciones en Bakery.

Espacio virtual de 2502^{50} B, 2 GiB de RAM, páginas de 4 KiB, PTE con PFN + V + D. (a) a (g).

Ver solución

31 bits · 2382^{38} páginas virtuales · 2192^{19} marcos · VPN 38 / PFN 19 · 2382^{38} entradas · 3 B por PTE · 3⋅2383 \cdot 2^{38} B = 768 GiB. Desarrollo y layout en Paginación. Prueba el preset en la calculadora.

Monitor en C (3 pts), Hoare o Mesa (1 pt), solo con semáforos (3 pts).

Ver solución

Código completo, demostraciones y la versión con semáforos (lightswitch + turnstile) en Baño unisex. Resumen: contadores dentro/esperando + turn; while → funciona en Mesa y en Hoare; sí se puede solo con semáforos.

Pregunta 4 (4 pts) · semWait/semSignal con semáforos binarios

Sección titulada «Pregunta 4 (4 pts) · semWait/semSignal con semáforos binarios»
Ver solución

No es correcta: se pierde un despertar (dos semSignalB(delay) seguidos sobre un binario dejan 1). Traza de 6 pasos y corrección por paso de testigo en Semáforos.

Fuente ·for_partial/E1_OS_20252.pdf