Fiche de cours

Comprendre la notion d'interblocage de processus

Lycée   >   Terminale   >   NSI   >   Comprendre la notion d'interblocage de processus

  • Fiche de cours
  • Quiz et exercices
  • Vidéos et podcasts
Objectif

Comprendre que des processus peuvent avoir un accès concurrent à une même ressource et que cela peut générer des interblocages.

Points clés
  • Des processus sont dits concurrents lorsqu’ils utilisent les mêmes ressources.
  • Dans certains cas, ces ressources peuvent ne pas être partageables et cela peut engendrer un blocage, c’est-à-dire que les processus tournent en boucle en attendant chacun que l’autre libère la ressource : il s’agit d’une situation d’interblocage.
  • L'informaticien Coffman a donné quatre conditions nécessaires pour qu'une situation d’interblocage se produise.
    • Au moins une ressource n’est pas partageable.
    • Un processus utilise une ressource et demande une ressource utilisée par un autre processus.
    • Une ressource ne peut être rendue que par un processus qui l’utilise.
    • Il doit y avoir au moins deux processus, chacun attendant une ressource détenue par l’autre.
Pour bien comprendre

Comprendre la gestion de plusieurs processus par un système d’exploitation.

1. Les problèmes générés par l'utilisation de ressources partagées
a. Processus et ordonnanceur (rappels)
Un processus est la réalisation d’un programme informatique, il sera exécuté par le processeur d’un ordinateur.

Un processus peut être actif ou en attente, il passe par différents états : nouveau, prêt (ou éligible), élu, bloqué ou terminé.

C’est l’ordonnanceur du système d’exploitation qui va « élire » un processus, en suivant certaines règles qui permettent à tous les processus de profiter de manière équitable des ressources en dehors d’une urgence.

b. Les ressources

Lorsqu’un processus est élu par l’ordonnanceur, il utilise différentes ressources (mémoires, périphériques, etc.) pour s’exécuter. Pour simplifier, le processus demande la ressource, l’utilise puis la libère.

Certaines ressources acceptent d’être utilisées, partagées, par plusieurs processus : on dit que les processus sont concurrents.

D’autres ressources ne sont à l’inverse pas partageables, c’est-à-dire qu’un seul processus peut utiliser cette ressource à la fois.

c. Les problèmes générés

Lorsqu’un processus est arrêté par l’ordonnanceur, ce processus n’est pas mis au courant de son arrêt, tout est gelé pour lui, sauf qu’un autre processus peut utiliser la même ressource et la lui rendre dans un autre état : cela peut générer des affichages différents pour un même programme lancé.

Exemple
Si deux processus sont concurrents sur une même variable v, le premier processus peut avoir « gelé » la valeur 5, sauf que le processus concurrent peut changer cette valeur en 7.

Il peut également y avoir des situations de bugs que l’on appelle des interblocages.

2. Les interblocages

On considère qu’on est dans un ordonnancement avec algorithme de réquisition, l’ordonnanceur décide donc quand il doit interrompre un processus.

a. Illustration de l'interblocage

On prend deux processus P1 et P2 concurrents, qui ont besoin d’utiliser simultanément deux ressources R1 et R2 non partageables pour s’exécuter. Les processus demandent les ressources une par une.

Au départ, les deux ressources sont « libres ».

  1. L’ordonnanceur passe le processus P1 de l’état « prêt » à l’état « élu » : celui-ci demande alors la ressource R1. Celle-ci est libre, donc il l’obtient.
    Le processus P1 repasse à l’état « prêt ».
  2. L’ordonnanceur élit alors le processus P2, qui demande la ressource R2. Celle-ci est libre, donc il l’obtient.
    Le processus P2 repasse à l’état « prêt ».
  3. Le processus P1 redevient élu, il demande la ressource R2 sans libérer la ressource R1. La ressource R2 n'a pas été libérée par P2, donc il ne l'obtient pas. Le processus P1 repasse à l’état « prêt ».
  4. Le processus P2 redevient élu, il demande la ressource R1 sans libérer la ressource R2. La ressource R1 n'a pas été libérée par P1, donc il ne l'obtient pas. Le processus P2 repasse à l’état « prêt ».

Cette situation porte le nom d’interblocage.

L’interblocage (deadlock en anglais) est une situation dans laquelle des processus concurrents attendent mutuellement que l’autre libère une ressource non partageable afin de pouvoir s’exécuter. Les processus sont ainsi définitivement bloqués.

Pour schématiser la situation : on tourne en rond ! Chaque processus a accès à une seule des deux ressources et attend que l’autre processus libère l’autre ressource sans libérer celle à laquelle il a accès.

Le visuel ci-dessous illustre la situation.


Situation d’interblocage
Remarque
Dans le cas où l’ordonnanceur utilise un algorithme sans réquisition, il n’y a pas de concurrence d’accès entre les processus, il n’y aura donc pas d’interblocage. Chaque processus a accès aux ressources nécessaires pour s’exécuter, puis il les libère avant que le processus suivant ne soit élu.
b. Conditions de l'interblocage

Un informaticien, Coffman, a décrit cette situation et a donné quatre conditions nécessaires à une situation d’interblocage.

  • Au moins une ressource n’est pas partageable.
  • Un processus utilise une ressource et demande une ressource utilisée par un autre processus.
  • Une ressource ne peut être rendue que par un processus qui l’utilise.
  • Il doit y avoir au moins deux processus, chacun attendant une ressource détenue par l’autre, sans rendre la ressource qu’il détient.
3. Éliminer un interblocage

Lorsqu’un interblocage se produit, une solution envisageable est de passer par la ligne de commande pour interrompre le ou les processus fautifs.

La ligne de commande permet de communiquer en mode texte avec l’ordinateur.

Sous Windows on utilise l’invite de commande pour le faire, sous Linux et sous macOS on utilise le terminal.

a. Sous Windows

Pour interrompre un processus sous Windows, il faut effectuer un clic droit sur le processus que l’on souhaite interrompre et choisir « Fin de tâche ».

b. Sous Linux

Pour interrompre un processus sous Linux, il faut taper dans le terminal la commande kill suivie du PID du processus que l’on souhaite interrompre.

c. Sous macOS

Pour interrompre un processus sous l’OS Mac, il faut aller dans « Applications », puis dans « Utilitaires » et cliquer sur « Terminal ».
Il faut ensuite procéder comme sous Linux, en tapant la commande kill suivie du PID que l’on souhaite interrompre.

Exemple
Si le processus de PID 1974 est à l’origine d’un interblocage, on tape kill 1974 dans la ligne de commande.

Évalue ce cours !

 

Des quiz et exercices pour mieux assimiler sa leçon

La plateforme de soutien scolaire en ligne myMaxicours propose des quiz et exercices en accompagnement de chaque fiche de cours. Les exercices permettent de vérifier si la leçon est bien comprise ou s’il reste encore des notions à revoir.

S’abonner

 

Des exercices variés pour ne pas s’ennuyer

Les exercices se déclinent sous toutes leurs formes sur myMaxicours ! Selon la matière et la classe étudiées, retrouvez des dictées, des mots à relier ou encore des phrases à compléter, mais aussi des textes à trous et bien d’autres formats !

Dans les classes de primaire, l’accent est mis sur des exercices illustrés très ludiques pour motiver les plus jeunes.

S’abonner

 

Des quiz pour une évaluation en direct

Les quiz et exercices permettent d’avoir un retour immédiat sur la bonne compréhension du cours. Une fois toutes les réponses communiquées, le résultat s’affiche à l’écran et permet à l’élève de se situer immédiatement.

myMaxicours offre des solutions efficaces de révision grâce aux fiches de cours et aux exercices associés. L’élève se rassure pour le prochain examen en testant ses connaissances au préalable.

S’abonner

Des vidéos et des podcasts pour apprendre différemment

Certains élèves ont une mémoire visuelle quand d’autres ont plutôt une mémoire auditive. myMaxicours s’adapte à tous les enfants et adolescents pour leur proposer un apprentissage serein et efficace.

Découvrez de nombreuses vidéos et podcasts en complément des fiches de cours et des exercices pour une année scolaire au top !

S’abonner

 

Des podcasts pour les révisions

La plateforme de soutien scolaire en ligne myMaxicours propose des podcasts de révision pour toutes les classes à examen : troisième, première et terminale.

Les ados peuvent écouter les différents cours afin de mieux les mémoriser en préparation de leurs examens. Des fiches de cours de différentes matières sont disponibles en podcasts ainsi qu’une préparation au grand oral avec de nombreux conseils pratiques.

S’abonner

 

Des vidéos de cours pour comprendre en image

Des vidéos de cours illustrent les notions principales à retenir et complètent les fiches de cours. De quoi réviser sa prochaine évaluation ou son prochain examen en toute confiance !

S’abonner

Découvrez le soutien scolaire en ligne avec myMaxicours

Plongez dans l'univers de myMaxicours et découvrez une approche innovante du soutien scolaire en ligne, conçue pour captiver et éduquer les élèves de CP à la terminale. Notre plateforme se distingue par une riche sélection de contenus interactifs et ludiques, élaborés pour stimuler la concentration et la motivation à travers des parcours d'apprentissage adaptés à chaque tranche d'âge. Chez myMaxicours, nous croyons en une éducation où chaque élève trouve sa place, progresse à son rythme et développe sa confiance en soi dans un environnement bienveillant.

Profitez d'un accès direct à nos Profs en ligne pour une assistance personnalisée, ou explorez nos exercices et corrigés pour renforcer vos connaissances. Notre assistance scolaire en ligne est conçue pour vous accompagner à chaque étape de votre parcours éducatif, tandis que nos vidéos et fiches de cours offrent des explications claires et concises sur une multitude de sujets. Avec myMaxicours, avancez sereinement sur le chemin de la réussite scolaire, armé des meilleurs outils et du soutien de professionnels dédiés à votre épanouissement académique.

Fiches de cours les plus recherchées

NSI

Comprendre les protocoles de routage

NSI

Introduire la cryptographie

NSI

Comprendre le chiffrement symétrique

NSI

Comprendre le chiffrement asymétrique

NSI

Décrire de manière détaillée le protocole HTTPS

NSI

Comprendre qu'un programme peut être une donnée

NSI

Introduire les notions de calculabilité et de décidabilité

NSI

Utiliser la récursivité en Python

NSI

Utiliser une API et des bibliothèques

NSI

Utiliser les paradigmes impératifs et fonctionnels