Aller au contenu

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

★☆☆Environ 8 min

Deux processus légers P1P_1 et P2P_2 utilisent deux mutex M1M_1 et M2M_2. Le code de P1P_1 est : verrouiller M1M_1, verrouiller M2M_2, travailler, déverrouiller M2M_2, déverrouiller M1M_1. Le code de P2P_2 est : verrouiller M2M_2, verrouiller M1M_1, travailler, déverrouiller M1M_1, déverrouiller M2M_2.

  1. Écris une suite d'instructions (en alternant les deux processus) qui mène à un interblocage.
  2. Précise à la fin de ta suite qui détient quoi et qui attend quoi.
  3. 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 P1P_1 demande M2M_2, qui le détient ?

Voir la correction pas à pas
  1. On exécute la première instruction de P1P_1 : il verrouille M1M_1.

  2. On passe la main à P2P_2 : il verrouille M2M_2 (libre, donc il l'obtient).

  3. P1P_1 reprend et demande M2M_2. Ce mutex est détenu par P2P_2 : P1P_1 attend.

  4. P2P_2 reprend et demande M1M_1. Ce mutex est détenu par P1P_1 : P2P_2 attend.

  5. Bilan : P1P_1 détient M1M_1 et attend M2M_2 ; P2P_2 détient M2M_2 et attend M1M_1.

  6. 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.

Cette situation est exactement celle d'un interblocage : des processus concurrents qui s'attendent mutuellement et restent bloqués pour toujours. 2 Ce qui crée le problème, c'est l'ordre différent d'acquisition des deux mutex. 2

Exercice 2 Vrai ou faux, avec justification

★☆☆Environ 8 min

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
  1. Affirmation a : fausse. Les processus bloqués dans un interblocage le sont définitivement. 2

  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

  3. Affirmation c : vraie. La résolution passe par l'arrêt d'un des processus fautifs. 1

  4. 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

★★☆Environ 12 min

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.

  1. Qui joue le rôle des processus, et quelle est la « ressource » attendue ?
  2. Montre qu'on obtient une attente circulaire.
  3. 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
  1. Les processus sont X et Y. La ressource attendue par chacun est l'accord de l'autre.

  2. X attend l'accord de Y pour donner le sien ; Y attend l'accord de X pour donner le sien.

  3. On a donc le cycle : X attend Y, Y attend X. Aucun des deux ne bougera, c'est un interblocage.

  4. 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.

  5. 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

★★☆Environ 15 min

On reprend P1P_1 et P2P_2. On ne regarde que les quatre acquisitions : P1P_1 fait a1a_1 (prendre M1M_1) puis a2a_2 (prendre M2M_2) ; P2P_2 fait b1b_1 (prendre M2M_2) puis b2b_2 (prendre M1M_1). 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.

  1. Combien y a-t-il d'entrelacements possibles ?
  2. 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 P1P_1 : c'est un coefficient binomial.

Indice 2

Il y a interblocage dès que a1a_1 et b1b_1 ont eu lieu tous les deux avant a2a_2 et avant b2b_2.

Voir la correction pas à pas
  1. On choisit les 2 positions de a1,a2a_1, a_2 parmi 4 : (42)=6\binom{4}{2}=6 entrelacements.

  2. On les énumère : a1a2b1b2a_1a_2b_1b_2, a1b1a2b2a_1b_1a_2b_2, a1b1b2a2a_1b_1b_2a_2, b1b2a1a2b_1b_2a_1a_2, b1a1a2b2b_1a_1a_2b_2, b1a1b2a2b_1a_1b_2a_2.

  3. Dans a1a2b1b2a_1a_2b_1b_2 : P1P_1 obtient les deux mutex, termine puis P2P_2 passe. Pas d'interblocage. Même chose pour b1b2a1a2b_1b_2a_1a_2.

  4. Dans les quatre autres, a1a_1 et b1b_1 se produisent avant a2a_2 et b2b_2 : P1P_1 détient M1M_1, P2P_2 détient M2M_2, puis chacun demande le mutex de l'autre. Interblocage.

  5. Il y a donc 6−2=46-2=4 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

★★☆Environ 12 min

Reprends le code de l'exercice 1. On modifie P2P_2 : il verrouille désormais M1M_1 puis M2M_2, comme P1P_1.

  1. Montre qu'aucun des entrelacements ne conduit alors à un interblocage.
  2. Explique en une phrase pourquoi cette modification casse le cycle d'attente.
Indice 1

Regarde ce qui se passe pour le processus qui obtient M1M_1 en premier.

Indice 2

Un cycle d'attente demande que chaque processus détienne ce que l'autre veut.

Voir la correction pas à pas
  1. Les deux processus veulent d'abord M1M_1. Un seul des deux l'obtient, disons P1P_1.

  2. P2P_2 attend alors M1M_1 sans rien détenir.

  3. P1P_1 demande M2M_2 : il est libre puisque P2P_2 n'a rien pris. P1P_1 l'obtient, travaille, puis libère M2M_2 et M1M_1.

  4. P2P_2 peut alors obtenir M1M_1 puis M2M_2. Le raisonnement est le même si P2P_2 passe en premier.

  5. Un cycle supposerait P2P_2 détenant un mutex que P1P_1 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

★★☆Environ 10 min

Un processus léger PP exécute : verrouiller MM, puis, plus loin dans une fonction appelée par erreur, verrouiller MM 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.

  1. Que se passe-t-il au second verrouillage ?
  2. Peut-on parler d'interblocage alors qu'il n'y a qu'un seul processus ?
  3. Comment corriger ?
Indice 1

Qui détient MM 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
  1. Au second verrouillage, MM est déjà détenu par PP lui-même. PP se met en attente de la libération de MM.

  2. Seul PP pourrait libérer MM, mais PP est bloqué en attendant : la libération n'aura jamais lieu.

  3. Il s'agit bien d'un interblocage : un processus peut aussi s'attendre lui-même. 2

  4. Correction : ne pas verrouiller deux fois, par exemple en déverrouillant MM 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

★★☆Environ 12 min

Deux processus P1P_1 et P2P_2 sont en interblocage sur deux fichiers F1F_1 et F2F_2 : P1P_1 détient F1F_1 et attend F2F_2 ; P2P_2 détient F2F_2 et attend F1F_1. L'administrateur décide d'arrêter P2P_2.

  1. Que devient P1P_1 ? Justifie.
  2. Pourquoi cette action suffit-elle à régler le blocage ?
  3. Quel inconvénient peut-il y avoir pour P2P_2 ?
Indice 1

Que devient F2F_2 quand P2P_2 s'arrête ?

Indice 2

Pense au travail déjà accompli par P2P_2.

Voir la correction pas à pas
  1. Arrêter P2P_2 libère les ressources qu'il détenait, donc F2F_2 devient disponible.

  2. P1P_1 peut obtenir F2F_2, poursuivre son travail puis se terminer en libérant F1F_1 : il n'est plus bloqué.

  3. 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

  4. Inconvénient : le travail de P2P_2 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

★★★Environ 20 min

Un système dispose de 10 exemplaires identiques d'une ressource RR. Trois processus se la partagent :

Processus Exemplaires déjà détenus Besoin maximal total
P1P_1 3 9
P2P_2 2 4
P3P_3 2 7

Un processus ne se termine que lorsqu'il a obtenu son besoin maximal ; il rend alors tout ce qu'il détient.

  1. Combien d'exemplaires sont libres ?
  2. Quel processus peut aller jusqu'au bout en premier ?
  3. Trouve un ordre de fin des trois processus qui évite l'interblocage.
  4. Combien d'exemplaires sont libres juste après la fin de P2P_2 ?

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
  1. Exemplaires libres : 10−(3+2+2)=310-(3+2+2)=3.

  2. Besoins restants : P1P_1 : 9−3=69-3=6 ; P2P_2 : 4−2=24-2=2 ; P3P_3 : 7−2=57-2=5.

  3. Seul P2P_2 (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 : 3−2+4=53-2+4=5 libres.

  4. Ensuite P3P_3 (besoin 5 ≤ 5) peut finir : il prend 5, termine et rend 2+5=72+5=7 exemplaires ; il y en a donc 7 de libres.

  5. Enfin P1P_1 (besoin 6 ≤ 7) finit à son tour. L'ordre P2P_2, P3P_3, P1P_1 permet à tous de se terminer.

  6. Réponse à la question 4 : 10−(3+2+2)−2+4=510-(3+2+2)-2+4=5 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

★★★Environ 15 min

Un système gère deux ressources AA et BB. Un processus QQ détient BB et demande AA. Si le système lui accorde AA, 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 AA, QQ libère BB.

  1. Le système est-il en interblocage après l'attribution de AA ? Justifie.
  2. Un élève affirme : « état non sûr, donc interblocage certain ». Réponds-lui.
  3. 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
  1. Après l'attribution de AA, QQ avance et libère BB. Aucune attente circulaire ne s'installe : il n'y a pas d'interblocage.

  2. 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

  3. Dans notre cas, c'est précisément la libération de BB qui évite l'attente circulaire, de sorte que l'état est non sûr sans que le système soit bloqué. 2

  4. 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.

  5. 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

  1. Notion d'interblocage [Spécialité NSI - Année 2024-2025], Académie de Lyon. Consulté le 7 novembre 2026.
  2. 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.

Signaler une erreur sur cette page

Je suis en…

Primaire

  • CP Bientôt
  • CE1 Bientôt
  • CE2 Bientôt
  • CM1 Bientôt
  • CM2 Bientôt

Collège

Lycée

Supérieur

  • BTS Bientôt
  • BUT Bientôt
  • Licence Bientôt
  • Prépas Bientôt

Sur cette page