 ##  [Interbloqueo](/es/node/58925) 

 Definición

Un fallo de concurrencia en el que dos o más tareas esperan indefinidamente por recursos que se poseen entre sí (o por condiciones que solo pueden satisfacer las otras), impidiendo que cualquiera avance.

 

 

 

 

 

 





## Principio

Principio

El deadlock ocurre cuando el sistema satisface simultáneamente las condiciones clásicas de asignación de recursos: exclusión mutua, mantener‑y‑esperar, no preempción y espera circular; estas condiciones organizan la posibilidad de una dependencia cíclica permanente.

 

 

 

 

 





## Demostración

Demostración

Dos hilos A y B: A posee el candado L1 y solicita L2; B posee L2 y solicita L1. Ninguno puede continuar porque cada uno espera el recurso del otro, produciendo un bloqueo indefinido.

 

 

 

 

## Aplicación incorrecta

Aplicación incorrecta

Llamar deadlock a cualquier pausa larga o respuesta lenta (por ejemplo, confundir alta latencia de E/S, demoras de planificación o livelock con un verdadero interbloqueo cíclico de recursos).

 

 

 

 

 





## Consecuencia

Consecuencia

Reconocer correctamente el deadlock conduce a remedios dirigidos: impedir una de las condiciones de Coffman (p. ej., imponer un orden global de recursos), detectar ciclos y recuperar (preempción o rollback), o diseñar algoritmos de evitación; un diagnóstico equivocado conduce a soluciones ineficaces.

 

 

 

 

## Inversión

Inversión

El inverso es un sistema con garantía de avanzar (liveness): sin esperas circulares, recursos preemtable o asignación en orden que impide ciclos.

 

 

 

 

 





## Límite

Límite

Se aplica a problemas concurrentes de asignación de recursos (hilos, procesos, bloqueos distribuidos, transacciones BD). Excluye errores lógicos mono‑hilo, degradación de rendimiento sin dependencia cíclica y esperas transitorias que se resuelven. Los deadlocks distribuidos y convoyes de bloqueo están incluidos; las fallas de memoria únicamente quedan fuera.

 

 

 

 

 





## Tensión semántica

Tensión semántica

Existe tensión con livelock y starvation: deadlock es un estado estable atascado (sin cambios de estado), mientras que livelock es activo sin progreso y starvation denota denegación injusta de recursos sin un ciclo mutuo.

 

 

 

 

 





## Síntesis

Síntesis

El deadlock es la manifestación estable de una dependencia cíclica de recursos bajo las cuatro condiciones de Coffman; tratarlo así guía a prevenir (romper una condición), detectar (buscar ciclos) o recuperar (preempción/rollback).