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:
-
Exclusión mutua
- Los recursos no pueden compartirse: solo un proceso puede usarlos a la vez.
-
Retención y espera
- Un proceso retiene un recurso mientras espera otro.
-
No expropiación
- Los recursos no pueden quitarse por la fuerza a un proceso; deben liberarse voluntariamente.
-
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
-
Prevención (evitar que se cumplan las 4 condiciones)
- Ejemplo: no permitir espera circular → imponer un orden en la petición de recursos.
-
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.
-
Detección y recuperación
- El SO permite que ocurran y los detecta después.
- Solución: abortar procesos implicados o quitarles recursos.
-
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...