Sistemas operativos

Un deadlock o interbloqueo ocurre cuando dos o más procesos quedan bloqueados indefinidamente porque cada uno espera un recurso que está siendo utilizado por otro. 👉 Es como un atasco de tráfico en el que nadie puede avanzar porque todos esperan que el otro se mueva primero.


🔹 Condiciones necesarias para que ocurra un deadlock

Según Coffman (1971), deben cumplirse 4 condiciones simultáneamente:

  1. Exclusión mutua

    • Los recursos no pueden compartirse: solo un proceso puede usarlos a la vez.
  2. Retención y espera

    • Un proceso retiene un recurso mientras espera otro.
  3. No expropiación

    • Los recursos no pueden quitarse por la fuerza a un proceso; deben liberarse voluntariamente.
  4. Espera circular

    • Existe una cadena de procesos donde cada uno espera un recurso retenido por el siguiente → un círculo de espera.

👉 Si las 4 se cumplen, puede ocurrir un deadlock.


🔹 Ejemplo clásico

  • Proceso A tiene el Recurso 1 y necesita el Recurso 2.
  • Proceso B tiene el Recurso 2 y necesita el Recurso 1.
  • Ninguno puede continuar → bloqueo eterno.

🔹 Estrategias frente a deadlocks

  1. Prevención (evitar que se cumplan las 4 condiciones)

    • Ejemplo: no permitir espera circular → imponer un orden en la petición de recursos.
  2. Evitación (el SO analiza y decide si otorgar recursos)

    • Ejemplo: algoritmo del banquero (Banker’s Algorithm) → solo concede recursos si garantiza que el sistema seguirá en estado seguro.
  3. Detección y recuperación

    • El SO permite que ocurran y los detecta después.
    • Solución: abortar procesos implicados o quitarles recursos.
  4. Ignorar el problema

    • Algunos SO (ej. Windows, Linux en muchos casos) ignoran deadlocks porque son raros y difíciles de prever.

🔹 Ejemplo práctico

  • En una impresora de red:

    • El proceso A tiene acceso al archivo pero espera la impresora.
    • El proceso B tiene acceso a la impresora pero espera el archivo.
    • Ninguno avanza → el administrador debe liberar manualmente los recursos.

📌 Resumen rápido

  • Deadlock = procesos esperando recursos entre sí en un ciclo infinito.
  • Requiere 4 condiciones: exclusión mutua, retención y espera, no expropiación, espera circular.
  • Estrategias: prevención, evitación (algoritmo del banquero), detección/recuperación, o ignorarlo.
  • Loading...