Le Deadlock
RdP ci-contre, deux taches T1 et T2 procédent périodiquement à la réservation de deux ressources I et D.
Vous pouvez imaginer un ordinateur auquel sont rattachées une imprimante (I) et une mémoire de masse
sous forme d'un dérouleur de bande magnétique (D).
La cohérence du message sur l'imprimante et l'accès en mode séquentiel sur le dérouleur de bande font de ces
ressources des ressources non-partageables.
Par contre, il se trouve que dans leurs routines de réservation,
T1 et T2 se réservent ces ressources dans un ordre différent. T1 réserve d'abord I, T2 réserve en premier D.
Si nous nous intéressons exclusivement à l'une ou l'autre des deux taches, Nous vérifions qu'il
n'y a pas d'entrave aux exécutions séparées des codes critiques pour T1 et T2. Par contre, si
T1 en est rendue à l'étape 3 et que dans ce mème laps de temps (Système en temps partagé) T2
exécute sa primitive P(D) à partir de la place marquée p7, il y a interblocage. Ni l'une ni
l'autre des deux taches ne peut plus alors progresser. C'est un "deadlock".
Une Solution :
Le RdP ( ) montre qu'il suffit, pour les deux taches, de réserver dans le même ordre pour
éliminer le risque de blocage.