Définition
Un échec de concurrence où deux tâches ou plus attendent indéfiniment des ressources détenues les unes par les autres (ou des conditions réalisables uniquement par les autres), empêchant toute avancée.

Principe

Principe
L'interblocage survient lorsque le système satisfait simultanément les conditions classiques d'allocation : exclusion mutuelle, maintien-et-attente, absence de préemption et attente circulaire ; ces conditions organisent la possibilité d'une dépendance cyclique permanente.

Démonstration

Démonstration
Deux threads A et B : A détient le verrou L1 et demande L2 ; B détient L2 et demande L1. Aucun ne peut continuer car chacun attend la ressource de l'autre, provoquant un blocage indéfini.

Mauvaise application

Mauvaise application
Qualifier de 'deadlock' toute pause prolongée ou toute lenteur (par exemple confondre latence d'E/S élevée, retards d'ordonnancement ou livelock avec un véritable interblocage de ressources cycliques).

Conséquence

Conséquence
Identifier correctement un interblocage permet des remèdes ciblés : empêcher une des conditions de Coffman (par ex. imposer un ordre global de ressources), détecter les cycles et récupérer (préemption ou rollback), ou concevoir des algorithmes d'évitement ; un mauvais diagnostic conduit à des corrections inefficaces.

Inversion

Inversion
L'inverse est un système garanti de progresser (vivacité) : pas d'attentes circulaires, ressources préemptables ou allocation ordonnée empêchant les cycles.

Limite

Limite
S'applique aux problèmes d'allocation concurrente de ressources (threads, processus, verrous distribués, transactions BD). Exclut les erreurs logiques mono‑thread, la dégradation de performance sans dépendance cyclique et les attentes transitoires qui se résolvent. Les interblocages distribués et les 'lock convoys' sont inclus ; les pannes mémoire seules en sont exclues.

Tension sémantique

Tension sémantique
Tension avec le livelock et la famine (starvation) : l'interblocage est un état stable bloqué (pas de changements d'état), tandis que le livelock est actif sans progression et la famine désigne un refus injuste de ressources sans cycle mutuel.

Synthèse

Synthèse
L'interblocage est la manifestation stable d'une dépendance cyclique de ressources lorsque les quatre conditions de Coffman sont remplies ; le traiter comme tel oriente vers prévention (briser une condition), détection (trouver des cycles) ou récupération (préempter/annuler).