Définition
Une procédure ou un mécanisme qui identifie la présence d’interblocages — situations où un ou plusieurs processus/threads restent bloqués de façon permanente parce que chacun attend des ressources détenues par d’autres, empêchant tout progrès sans intervention.

Principe

Principe
La détection modélise la contention de ressources par des graphes (graphes d’attente ou graphes d’allocation de ressources) et utilise la détection de cycles ou l’analyse d’espace d’états pour repérer des attentes circulaires. La détection fait partie des trois familles d’approches (prévention, avoidance, détection+récupération) ; les détecteurs pratiques arbitrent exhaustivité et coût, peuvent s’exécuter périodiquement ou à la demande et doivent traduire les cycles abstraits en actions de récupération concrètes.

Démonstration

Démonstration
Exemples concrets : détecteurs d’interblocage dans les systèmes d’exploitation qui construisent des graphes d’attente et détectent des cycles pour choisir une victime à terminer ou à préempter ; systèmes de bases de données qui détectent des attentes sur verrous et abortent une transaction pour briser le cycle ; outils d’analyse statique qui approximativement identifient des risques d’interblocage en modélisant les ordres d’acquisition de verrous dans du code multithread.

Mauvaise application

Mauvaise application
Supposer que la détection équivaut à la résolution — la détection ne fait que signaler l’existence d’un interblocage et doit être suivie d’une récupération (terminaison, rollback, préemption). Surinterpréter des faux positifs d’analyses statiques conservatrices ou ignorer le livelock et la famine (starvation), qui sont des problèmes distincts, sont des usages erronés fréquents.

Conséquence

Conséquence
Une détection efficace permet des actions de récupération ciblées (rollback, préemption de ressources, terminaison de thread) et oriente la conception et l’ajustement du système, mais introduit un coût de surveillance et demande une politique soigneuse de sélection de victimes afin de minimiser la perturbation.

Inversion

Inversion
La prévention ou l’évitement des interblocages (imposer un ordre global sur les ressources, utiliser l’algorithme du banquier, ou n’allouer que si l’état est sûr) supprime le besoin de détecter et récupérer mais peut réduire la concurrence ou nécessiter une sur‑provision conservatrice.

Limite

Limite
S’applique aux systèmes avec ressources mutuellement exclusives et sémantique d’acquisition bloquante (verrous, sémaphores, canaux I/O) ; exclut les anomalies de progrès qui ne sont pas des attentes circulaires (famine, livelock) et les modèles où les ressources ne sont pas retenues pendant l’attente (passage de messages pur sans blocage), sauf si une relation d’attente peut être dérivée.

Tension sémantique

Tension sémantique
Tension entre la détection à l’exécution (réactive, souvent moins coûteuse dans le cas commun) et la prévention/évitation (proactive, susceptible de réduire la concurrence). Tension également entre détection dynamique précise et analyses statiques conservatrices qui échangent faux positifs contre sécurité.

Synthèse

Synthèse
La détection d’interblocage est l’identification à l’exécution ou à l’analyse de conditions cycliques d’attente de ressources via des graphes d’attente ou d’allocation ; elle s’inscrit dans l’espace de conception plus large constitué par prévention, évitement et récupération, offrant un moyen pragmatique de découvrir des cycles bloquants afin que des politiques de récupération contrôlée puissent rétablir le progrès.