6. Distinguer les quatre familles de traitement
6.1. Les approches et leur moment d'intervention
| Famille | Principe | Question à laquelle elle répond |
|---|---|---|
| Autruche | Accepter de ne pas consacrer de mécanisme particulier au problème | Le risque et ses conséquences justifient-ils le coût d'une solution? |
| Détection et reprise | Laisser les allocations se produire, détecter un interblocage puis intervenir | Un interblocage est-il présent et comment rétablir la progression? |
| Évitement dynamique | Examiner les conséquences d'une allocation avant de l'accorder | Cette allocation risque-t-elle de conduire à une situation à éviter? |
| Prévention | Empêcher une des conditions nécessaires | Comment organiser les règles pour empêcher la réunion de ces conditions? |
La distinction temporelle est centrale. La détection et reprise intervient après la formation du problème. L'évitement prend une décision avant l'allocation considérée. La prévention agit sur les conditions d'apparition. Ces termes ne désignent pas trois noms interchangeables pour une même procédure.
La partie 1 situe les quatre familles, mais développe surtout la détection, puis donne un aperçu des moyens de reprise. Elle ne fournit pas encore une étude détaillée du banquier ou de toutes les techniques de prévention. Il faut connaître cette limite plutôt que attribuer à une simple liste la valeur d'un algorithme complet.
6.2. Pourquoi l'autruche peut être un choix de coût
L'approche de l'autruche accepte le risque lorsque les événements sont suffisamment rares et leurs conséquences suffisamment limitées pour que les mécanismes ajoutés ne soient pas jugés rentables. Détecter et récupérer exige du code, du temps processeur et de la gestion.
L'enseignant oppose un interblocage exceptionnel dans un jeu, par exemple une fois en plusieurs années, à un système téléphonique qui tomberait en panne toutes les deux semaines. Le coût acceptable et les conséquences pour l'utilisateur ne sont pas les mêmes. L'analyse porte donc à la fois sur la probabilité de l'incident, l'importance du système et les effets du redémarrage ou de l'interruption.
Ignorer le problème dans cette stratégie ne signifie pas avoir démontré qu'il n'existe pas. Cela signifie accepter ses conséquences dans le contexte considéré.
6.3. Pourquoi la détection doit être systématique
Une petite boucle peut se voir immédiatement dans un dessin. Un système comportant beaucoup de processus et de ressources exige une procédure automatisable, capable de traiter aussi les nœuds extérieurs au cycle. Le cours présente deux modèles et un détecteur pour chacun :
- Une instance par type : construire un graphe d'allocation et chercher un cycle par élimination.
- Plusieurs instances par type : représenter les ressources disponibles, allouées et demandées, puis simuler les terminaisons possibles.
Dans les deux cas, l'algorithme de détection fournit un diagnostic. Il ne constitue pas encore l'action de réparation sur le système réel.