Numérique et sciences informatiques (spécialité) · TerminaleBac
Interblocage : exercices corrigés de Terminale NSI
Publié le 7 novembre 2026 · Mis à jour le 7 novembre 2026 · Signaler une erreur
L'essentiel
- Un interblocage (deadlock) survient quand des processus concurrents s'attendent mutuellement ; ils restent alors bloqués définitivement. 2
- Cas typique : deux processus légers prennent deux mutex dans un ordre différent. 2
- Pour sortir d'un interblocage, on arrête l'un des processus fautifs ; on peut aussi chercher à l'éviter. 1
- Un état non sûr peut conduire à un interblocage, sans que ce soit automatique. 2
- Pour chaque exercice : repère les processus, les ressources, qui détient quoi et qui attend quoi.
Comment utiliser ces exercices
Ces exercices t'entraînent à reconnaître un interblocage, à le provoquer sur le papier, à l'expliquer et à raisonner sur les états d'un système. Ils sont classés par difficulté croissante. Cherche d'abord seul·e avec un brouillon, ouvre les indices si tu bloques, puis compare avec la correction pas à pas.
Rappel de départ : un interblocage (deadlock en anglais) est un phénomène de la programmation concurrente. Il se produit lorsque des processus concurrents s'attendent les uns les autres. 2 Les processus pris dans cet état le restent pour toujours, ce qui en fait une situation catastrophique. 2
Les exercices
Exercice 1 Repérer l'interblocage dans une exécution
Deux processus légers et utilisent deux mutex et . Le code de est : verrouiller , verrouiller , travailler, déverrouiller , déverrouiller . Le code de est : verrouiller , verrouiller , travailler, déverrouiller , déverrouiller .
- Écris une suite d'instructions (en alternant les deux processus) qui mène à un interblocage.
- Précise à la fin de ta suite qui détient quoi et qui attend quoi.
- Justifie que plus aucun des deux processus ne peut avancer.
Indice 1
Fais avancer chaque processus d'une seule instruction avant de passer la main à l'autre.
Indice 2
Pose-toi la question : quand demande , qui le détient ?
Voir la correction pas à pas
On exécute la première instruction de : il verrouille .
On passe la main à : il verrouille (libre, donc il l'obtient).
reprend et demande . Ce mutex est détenu par : attend.
reprend et demande . Ce mutex est détenu par : attend.
Bilan : détient et attend ; détient et attend .
Aucun des deux ne peut déverrouiller ce qu'il détient, puisque ces déverrouillages se trouvent après la demande qui le bloque. Personne ne libère rien : l'attente est circulaire et définitive.
Exercice 2 Vrai ou faux, avec justification
Dis si chaque affirmation est vraie ou fausse et justifie en une phrase.
- a. Un interblocage peut se terminer tout seul si on attend assez longtemps.
- b. Il peut y avoir interblocage avec un seul processus.
- c. Pour sortir d'un interblocage, on peut arrêter l'un des processus concernés.
- d. Le mot anglais pour interblocage est deadlock.
Indice 1
Pense à ce que signifie « bloqué définitivement ».
Indice 2
Relis la définition : qui s'attend, et est-ce que cela exclut un processus seul ?
Voir la correction pas à pas
Affirmation a : fausse. Les processus bloqués dans un interblocage le sont définitivement. 2
Affirmation b : vraie. Un processus peut aussi s'attendre lui-même, par exemple en redemandant une ressource qu'il détient déjà et qui ne peut pas être prise deux fois. 2
Affirmation c : vraie. La résolution passe par l'arrêt d'un des processus fautifs. 1
Affirmation d : vraie. Deadlock est le terme anglais ; on parle aussi d'étreinte fatale. 2
Retiens la différence entre une attente ordinaire, qui se termine quand la ressource est libérée, et un interblocage, où la libération ne viendra jamais sans intervention extérieure.
Exercice 3 Deux élèves, deux établissements
Un exemple tiré de la vie courante illustre l'interblocage : deux élèves de terminale, X et Y, dans deux établissements différents A et B, veulent échanger leur place. 1
On modélise la situation ainsi : X est inscrit en A et Y en B. L'échange n'est possible que si les deux acceptent. Chacun attend d'avoir la confirmation de l'autre avant de donner son propre accord, et refuse de donner le sien tant qu'il n'a pas reçu celui de l'autre.
- Qui joue le rôle des processus, et quelle est la « ressource » attendue ?
- Montre qu'on obtient une attente circulaire.
- Propose une règle qui casse le cycle.
Indice 1
Une ressource ici, c'est un accord que l'on attend de l'autre.
Indice 2
Pour casser un cycle, il suffit qu'une des deux parties n'attende plus.
Voir la correction pas à pas
Les processus sont X et Y. La ressource attendue par chacun est l'accord de l'autre.
X attend l'accord de Y pour donner le sien ; Y attend l'accord de X pour donner le sien.
On a donc le cycle : X attend Y, Y attend X. Aucun des deux ne bougera, c'est un interblocage.
Règle possible : on décide à l'avance que X (par exemple l'élève de plus petit numéro) donne son accord en premier. Il n'attend alors plus personne, Y reçoit l'accord et peut répondre.
Autre issue : un tiers impose la décision en retirant l'un des deux de la boucle d'attente, ce qui revient à arrêter l'un des protagonistes. 1
Cet exemple montre que l'interblocage n'est pas propre à l'informatique : chaque acteur attend un événement que seul l'autre peut déclencher. 1 La sortie vient toujours d'une rupture du cycle.
Exercice 4 Compter les entrelacements dangereux
On reprend et . On ne regarde que les quatre acquisitions : fait (prendre ) puis (prendre ) ; fait (prendre ) puis (prendre ). Chaque processus garde son ordre interne. Aucun mutex n'est libéré avant la fin des deux acquisitions du processus qui le détient.
On appelle entrelacement une suite des quatre actions respectant ces ordres.
- Combien y a-t-il d'entrelacements possibles ?
- Parmi eux, combien mènent à un interblocage ?
Donne le nombre d'entrelacements menant à un interblocage.
Indice 1
Un entrelacement se décide en choisissant, parmi 4 positions, les 2 occupées par : c'est un coefficient binomial.
Indice 2
Il y a interblocage dès que et ont eu lieu tous les deux avant et avant .
Voir la correction pas à pas
On choisit les 2 positions de parmi 4 : entrelacements.
On les énumère : , , , , , .
Dans : obtient les deux mutex, termine puis passe. Pas d'interblocage. Même chose pour .
Dans les quatre autres, et se produisent avant et : détient , détient , puis chacun demande le mutex de l'autre. Interblocage.
Il y a donc entrelacements menant à un interblocage, soit 4 sur 6.
Sur cet exemple, la majorité des exécutions possibles se bloquent. Pourtant, une exécution peut passer sans problème lors d'un test : l'interblocage dépend de l'ordre dans lequel le système alterne les processus, c'est ce qui le rend difficile à repérer par des essais.
Exercice 5 Corriger le code en imposant un ordre
Reprends le code de l'exercice 1. On modifie : il verrouille désormais puis , comme .
- Montre qu'aucun des entrelacements ne conduit alors à un interblocage.
- Explique en une phrase pourquoi cette modification casse le cycle d'attente.
Indice 1
Regarde ce qui se passe pour le processus qui obtient en premier.
Indice 2
Un cycle d'attente demande que chaque processus détienne ce que l'autre veut.
Voir la correction pas à pas
Les deux processus veulent d'abord . Un seul des deux l'obtient, disons .
attend alors sans rien détenir.
demande : il est libre puisque n'a rien pris. l'obtient, travaille, puis libère et .
peut alors obtenir puis . Le raisonnement est le même si passe en premier.
Un cycle supposerait détenant un mutex que attend. Ici, celui qui attend ne détient rien, donc le cycle n'existe pas.
Acquérir les ressources dans un ordre commun supprime l'attente circulaire. Cette idée vient de l'analyse du cas d'interblocage où les deux mutex sont pris dans un ordre différent. 2 C'est un raisonnement de conception, qui n'exige pas de connaître à l'avance les besoins de chaque processus.
Exercice 6 Le processus qui s'attend lui-même
Un processus léger exécute : verrouiller , puis, plus loin dans une fonction appelée par erreur, verrouiller de nouveau, avant tout déverrouillage. On suppose que ce mutex n'autorise qu'un seul verrouillage à la fois, même pour le processus qui le détient.
- Que se passe-t-il au second verrouillage ?
- Peut-on parler d'interblocage alors qu'il n'y a qu'un seul processus ?
- Comment corriger ?
Indice 1
Qui détient au moment de la seconde demande ?
Indice 2
Relis la définition : elle prévoit le cas d'un processus seul.
Voir la correction pas à pas
Au second verrouillage, est déjà détenu par lui-même. se met en attente de la libération de .
Seul pourrait libérer , mais est bloqué en attendant : la libération n'aura jamais lieu.
Il s'agit bien d'un interblocage : un processus peut aussi s'attendre lui-même. 2
Correction : ne pas verrouiller deux fois, par exemple en déverrouillant avant l'appel de la fonction, ou en restructurant le code pour que seule une fonction prenne le mutex.
L'interblocage n'exige pas deux processus : la condition essentielle est un cycle d'attente, et ce cycle peut se réduire à un processus qui attend sa propre action. 2
Exercice 7 Choisir quel processus arrêter
Deux processus et sont en interblocage sur deux fichiers et : détient et attend ; détient et attend . L'administrateur décide d'arrêter .
- Que devient ? Justifie.
- Pourquoi cette action suffit-elle à régler le blocage ?
- Quel inconvénient peut-il y avoir pour ?
Indice 1
Que devient quand s'arrête ?
Indice 2
Pense au travail déjà accompli par .
Voir la correction pas à pas
Arrêter libère les ressources qu'il détenait, donc devient disponible.
peut obtenir , poursuivre son travail puis se terminer en libérant : il n'est plus bloqué.
Le cycle d'attente est rompu, car un des deux maillons a disparu. Arrêter l'un des deux processus fautifs est bien l'une des façons de mettre fin à un interblocage. 1
Inconvénient : le travail de est perdu ou interrompu, il faudra le relancer, et il risque de retomber dans le même blocage si le code n'a pas changé.
Arrêter un processus règle l'urgence mais ne corrige pas la cause. Pour éviter que le problème revienne, il faut modifier la façon dont les ressources sont demandées.
Exercice 8 État sûr et ressources disponibles
Un système dispose de 10 exemplaires identiques d'une ressource . Trois processus se la partagent :
| Processus | Exemplaires déjà détenus | Besoin maximal total |
|---|---|---|
| 3 | 9 | |
| 2 | 4 | |
| 2 | 7 |
Un processus ne se termine que lorsqu'il a obtenu son besoin maximal ; il rend alors tout ce qu'il détient.
- Combien d'exemplaires sont libres ?
- Quel processus peut aller jusqu'au bout en premier ?
- Trouve un ordre de fin des trois processus qui évite l'interblocage.
- Combien d'exemplaires sont libres juste après la fin de ?
Donne la réponse de la question 4.
Indice 1
Pour chaque processus, calcule le besoin restant : besoin maximal moins ce qu'il détient.
Indice 2
Un processus peut finir si son besoin restant est inférieur ou égal au nombre d'exemplaires libres.
Voir la correction pas à pas
Exemplaires libres : .
Besoins restants : : ; : ; : .
Seul (besoin 2 ≤ 3 libres) peut aller au bout tout de suite. Il prend 2 exemplaires (il en reste 1 de libre), termine, puis rend ses 4 exemplaires : libres.
Ensuite (besoin 5 ≤ 5) peut finir : il prend 5, termine et rend exemplaires ; il y en a donc 7 de libres.
Enfin (besoin 6 ≤ 7) finit à son tour. L'ordre , , permet à tous de se terminer.
Réponse à la question 4 : exemplaires libres.
Quand on peut dérouler un tel ordre de fin, l'état est dit sûr. À l'inverse, un état non sûr laisse planer la possibilité d'un interblocage. 2 Ce type de vérification repose sur la connaissance préalable des besoins maximaux, ce que l'algorithme du banquier exige : il faut connaître à l'avance les limites d'utilisation des ressources. 2
Exercice 9 État non sûr n'est pas interblocage
Un système gère deux ressources et . Un processus détient et demande . Si le système lui accorde , il se retrouve dans une configuration dite non sûre : un interblocage devient possible par la suite. On sait toutefois que, juste après avoir obtenu , libère .
- Le système est-il en interblocage après l'attribution de ? Justifie.
- Un élève affirme : « état non sûr, donc interblocage certain ». Réponds-lui.
- Explique l'intérêt, pour un système, de refuser ou de retarder une attribution qui mène à un tel état.
Indice 1
Pour qu'il y ait interblocage, il faut une attente circulaire réellement établie.
Indice 2
Relis la définition de l'état non sûr : une possibilité n'est pas une certitude.
Indice 3
Que gagne-t-on à éviter une configuration dont on ne sait pas si elle se débloquera ?
Voir la correction pas à pas
Après l'attribution de , avance et libère . Aucune attente circulaire ne s'installe : il n'y a pas d'interblocage.
L'affirmation de l'élève est fausse. Un état non sûr ne conduit pas forcément à un interblocage : la notion indique seulement une possibilité d'interblocage. 2
Dans notre cas, c'est précisément la libération de qui évite l'attente circulaire, de sorte que l'état est non sûr sans que le système soit bloqué. 2
Intérêt de la prudence : à chaque allocation, le système examine si elle l'amènerait vers un état non sûr. 2 S'il l'évite, il n'a pas à parier sur le comportement futur des processus.
Limite : cette prudence nécessite de connaître les demandes à l'avance, ce qui est impossible pour beaucoup de systèmes ; l'évitement des interblocages est alors souvent irréalisable. 2
Retiens trois niveaux : interblocage (des processus sont déjà bloqués pour toujours), état non sûr (un blocage est possible mais pas certain) et état sûr (il existe un ordre qui permet à tous de finir). Les deux dernières notions décrivent une possibilité, pas un blocage constaté. 2
Les questions qu'on se pose
Comment savoir, à l'écrit, si une situation est un interblocage ?
Dresse la liste de ce que détient chaque processus et de ce qu'il attend. S'il existe un cycle (A attend ce que détient B, B attend ce que détient A, ou un cycle plus long) et que personne ne peut libérer quoi que ce soit, c'est un interblocage. Les processus concernés restent alors bloqués définitivement. 2 Si au moins un processus peut avancer et libérer une ressource, ce n'est pas un interblocage.
Que faire concrètement quand un interblocage est constaté ?
Le plus direct est d'arrêter l'un des processus fautifs, ce qui libère ses ressources. 1 On peut aussi chercher à prévenir le problème en amont, mais l'évitement suppose de connaître certaines informations à l'avance, et pour beaucoup de systèmes cela n'est pas possible. 2 Au programme, retiens surtout l'identification du blocage et le fait que l'arrêt d'un processus le résout.
Un état non sûr est-il toujours un interblocage ?
Non. Un état non sûr signifie qu'un interblocage pourrait survenir, pas qu'il est déjà là. Un processus peut se trouver dans un état non sûr sans qu'il y ait forcément interblocage, par exemple s'il libère une autre ressource à temps pour éviter l'attente circulaire. 2 Au bac, justifie toujours en cherchant s'il existe une attente circulaire réelle.
Sources
- Notion d'interblocage [Spécialité NSI - Année 2024-2025], Académie de Lyon. Consulté le 7 novembre 2026.
- Interblocage, Wikipédia. Consulté le 7 novembre 2026.
Les numéros dans le texte renvoient à ces sources. Une source qui ne dit pas ce qu'on lui fait dire ? Signale-le.