Interbloqueo: Las 4 Condiciones
Un interbloqueo requiere las cuatro condiciones de Coffman simultáneamente — rompe cualquiera y el interbloqueo se vuelve imposible.
Anatomía del Interbloqueo
Un interbloqueo ocurre cuando las cuatro condiciones de Coffman se cumplen simultáneamente: (1) Exclusión Mutua — un recurso solo puede ser sostenido por un hilo a la vez; (2) Bloqueo y Espera — un hilo sostiene al menos un recurso y espera adquirir más; (3) Sin Apropiación — un recurso sostenido no puede ser quitado forzosamente; (4) Espera Circular — el hilo A espera un recurso del hilo B, que espera un recurso del hilo A. Elimina una sola condición y el interbloqueo se vuelve estructuralmente imposible.
Estrategias para Romper el Interbloqueo
Ataca una condición: (1) Rompe la Exclusión Mutua — usa estructuras sin bloqueo donde sea seguro. (2) Rompe el Bloqueo y Espera — solicita todos los recursos a la vez. (3) Rompe Sin Apropiación — implementa adquisición con tiempo de espera. (4) Rompe la Espera Circular — impone un orden total global en todos los recursos (siempre bloquea el mutex A antes que el B).
Desafío de Código
Corrige el interbloqueo imponiendo un orden global consistente de bloqueo.
💡Conclusión clave
Un interbloqueo necesita las cuatro condiciones de Coffman. Imponer un orden global consistente de bloqueo cuesta casi nada y rompe la Espera Circular.
🔧 Algunos ejercicios pueden tener errores. Si algo parece incorrecto, usa el botón Feedback (abajo a la derecha) para reportarlo — nos ayuda a corregirlo rápido.
Pista: El orden de bloqueo (siempre adquiere A antes que B en toda la base de código) elimina la Espera Circular — la 4ª condición de Coffman. Una condición eliminada = interbloqueo imposible.
✗ Tu versión