Académique Documents
Professionnel Documents
Culture Documents
Chapitre 7
A. les Processus
I. Le système d'exploitation
https://www.youtube.com/watch?v=SpCP2oaCx8A
Toute machine est dotée d’un système d’exploitation qui a pour fonction de charger les
programmes depuis la mémoire de masse et de lancer leur exécution en leur créant des
processus, de gérer l’ensemble des ressources, de traiter les interruptions ainsi que les
entrées-sorties et enfin d’assurer la sécurité globale du système.
Exemples
Attention, Linux n’est pas à proprement parlé un OS , c’est en fait le noyau de nombreux
OS que l’on appelle des distributions Linux comme par exemple Gentoo, Debian, Linux
Mint, Ubuntu, Fedora, RedHat …
OS en bref
Les système d'exploitation font le Lien entre monde applicatif (les applications) et monde
matériel (les composants)
Le monde matériel
• la mémoire
• les processeurs (cerveaux, font des calculs)
• péripéhriques E/S (imprimantes, écran, clavier, souris, internet...)
1/27
Chapitre 7 Les processus
Le monde applicatif
• C'est l'ensemble des programmes qui sont en activité à un instant donné.
• Dans un ordinateur, on a plusieurs applications qui s'exécutent simultanément.
chacune exécute une tache.
• Les applications n'accèdent pas aux éléments de l'ordinateur, elles communiquent
seulement avec l'OS.
Gestion de la mémoire
La mémoire peut être vue comme un grand tableau disposant de “mots” repérés par des
adresses. Si les applications écrivaient directement dans la mémoire, comme elles ne
peuvent pas communiquer entre elles, voilà ce qui pourrait arriver :
Au démarrage d'une application, L'OS crée un espace de mémoire virtuelle dédié à cette
application.
L'application écrit dans la mémoire virtuelle. L'OS transfère ensuite dans la vraie mémoire
et il mémorise l'information : si l'application demande l'information écrite au mot 1 de sa
mémoire virtuelle il sait où trouver l'information dans la vraie mémoire.
Ordonanceur
Le système d'exploitation va attribuer les ressources, notamment l'accès au CPU. Si une
application est bloquée (attente d'une donnée sur disque dur par exemple) l'OS attribue le
CPU à une autre application.
• L'OS vérifie que l'application a les droits (voir, droits d'accès aux fichiers par
exemple) et attribue l'accès ensuite. Cet accès peut être de deux types :
2/27
Chapitre 7 Les processus
• Privé : la ressource est attribuée et bloquée pour les autres applications, par
exemple c'est la cas d'un accès en écriture dans un fichier.
• Libre : la ressource est attribuée mais reste disponible pour les autres
applications, par exemple c'est la cas d'un accès en lecture dans un fichier.
A retenir :
les trois rôles de l'OS sont :
• gérer la mémoire
• ordonnanceur
• accès aux ressources
https://www.youtube.com/watch?v=bFqud0gcCHM
En résumé
Un processus est un "programme" en cours d’exécution.
Attention
Il y a une différence entre programme et processus : le même programme peut être lancé
plusieurs fois et donner naissances à des processus distincts.
3/27
Chapitre 7 Les processus
• Sous Ubuntu Mate, une distribution Linux, il y a par exemple Moniteur Système. (cf
MENU puis Outils Système )
4/27
Chapitre 7 Les processus
Ces processus vont devoir s’exécuter à tours de rôle, pour gérer l’ordre d’exécution le
système d’exploitation va attribuer des états aux processus.
• nouveau (initialisation) : le processus vient d'être créé mais n'existe pas encore qu'à
l'état de requête de processus en attendant d'être admis en tant que processus
activable
• prêt (en attente): le processus attend son tour pour prendre la main
• élu (en exécution) : le processus a accès au processeur pour exécuter ses
instructions
• bloqué (endormi) : le processus attend qu'un événement se produise (saisie clavier,
réception d'une donnée par le réseau ou le disque dur ...)
• terminé : le processus est désormais inactif car il a achevé sa tâche. Il sera détruit
prochainement par le système d'exploitation pour libérer de la place en mémoire. Il
est parfois conservé pendant un temps à l'état terminé en attendant qu'une
entrée/sortie s'achève ou que les données de ce processus soient exploitées par un
autre. On parle alors de processus " zombie".
5/27
Chapitre 7 Les processus
6/27
Chapitre 7 Les processus
III. QCM
1. Un processus est :
• un programme exécutable
• un logiciel
• une instance d'exécution d'un programme
2. Un processus prêt :
• est exécuté
• a été exécuté dans le processeur
• attend d'obtenir le processeur
• élu
• bloqué
• prêt
• actif
4. Un processus bloqué :
7/27
Chapitre 7 Les processus
B. Ordonnancement
I. L'ordonnancement
• Le modèle FIFO : on affecte les processus dans l'ordre de leur apparition dans la
file d'attente.
• Le modèle SJF (Shortest Job First) : on affecte en premier le « plus court processus
en premier » de la file d'attente à l'unité de calcul.
• Le modèle Round Robin : (ou méthode du tourniquet) on effectue un bloc de
chaque processus présent dans la file d'attente à tour de rôle, pendant un quantum
de temps d'en général 20 à 30 ms. Si le processus n'est pas terminé, il repart en fin
de liste d'attente.
D’autres algorithmes :
8/27
Chapitre 7 Les processus
Le quantum
https://www.youtube.com/watch?v=mBqsouf-HZc
Processus P1 P2 P3 P4 P5
Durée en
3 6 4 2 1
quantum
Date
0 1 4 6 7
d'arrivée
👉 Etape 2 :
• Au début du traitement des processus l'horloge mesurant les quantums est à 0.
• P1 arrive en 0 , il n'y a pas d'autre processus en attente. L'OS execute P1 pendant
3 quantums
9/27
Chapitre 7 Les processus
10/27
Chapitre 7 Les processus
IV. Exercices
Exercice 3 :Représenter l'ordonnancement des processus ci-dessous à l'aide du modèle Round Robin
Processus P1 P2 P3
Durée en quantum 8 5 9
Date d'arrivée 1 0 3
Exercice 4 :
Les trois processus suivants doivent être exécutés simultanément sur un ordinateur à un
seul microprocesseur. Chaque instruction dure 1 quantum. Nous les noterons P1, P2 et
P3.
11/27
Chapitre 7 Les processus
QCM
Comment s'appelle la gestion du partage du processeur entre différents processus?
• l'interblocage
• l'ordonnancement
• la planification
• la priorisation
L'ordonnanceur :
Un processus
• ne s'exécute jamais en même temps qu'un autre processus sur le même
processeur.
• peut être mis en attente par l'ordonnancement du système d'exploitation
• réalise l'ensemble des ses instructions avant de rendre la main
TP ordonnancement
👉 Vous devrez télécharger dans le même dossier les deux fichiers suivants
🌐 TD à télécharger : Fichier TP_ordonnanceur_sujet_2023.ipynb : "Clic droit", puis
"Enregistrer la cible du lien sous"
12/27
Chapitre 7 Les processus
C. Interblocage
Les interblocages sont des situations assez courantes dans la vie quotidienne.
Interblocage ou deadlock
En informatique, ce problème survient également quand des
processus convoitent les mêmes ressources. Le terme interblocage est quelquefois
remplacé par les expressions poétiques "verrou mortel" (en anglais deadlock). Les
processus bloqués dans cet état le sont définitivement.
Exemple d'interblocage
😢 Interblocage !
13/27
Chapitre 7 Les processus
⚠️ Attention, il faut bien tenir compte du sens des flèches ! Si dans la figure c une des
flèches était inversée, nous n'aurions pas un cycle.
14/27
Chapitre 7 Les processus
15/27
Chapitre 7 Les processus
16/27
Chapitre 7 Les processus
• P1 fait une lecture sur R1 et une écriture sur R2. Il ne veut pas que R1 risque d’être
modifié avant qu’il écrive sur R2.
• Et réciproquement pour P2.
V. Exemple
17/27
Chapitre 7 Les processus
Cette situation d'interblocage a été théorisée par l'informaticien Edward Coffman (1934-)
qui a énoncé quatre conditions - appelées conditions de Coffman - menant à l'interblocage
:
Résumé
Il existe heureusement des stratégies pour éviter ces situations. Par exemple :
18/27
Chapitre 7 Les processus
VII. Exercices
Exercice 1 :
Sept processus Pi sont dans la situation suivante par rapport aux ressources Ri :
• P1 a obtenu R1 et demande R2
• P2 demande R3 et n’a obtenu aucune ressource tout comme P3 qui demande R2
• P4 a obtenu R2 et R4 et demande R3
• P5 a obtenu R3 et demande R5
• P6 a obtenu R6 et demande R2
• P7 a obtenu R5 et demande R2.
1. Construire un graphe orienté où les sommets sont les processus et les ressources, et
où :
2) :
Les états possibles d'un processus sont : prêt, élu, terminé et bloqué.
3. On suppose que quatre processus C1, C2, C3 et C4 sont créés sur un ordinateur, et
qu'aucun autre processus n'est lancé sur celui-ci, ni préalablement ni pendant l'exécution
des quatre processus. L'ordonnanceur, pour exécuter les différents processus prêts, les
place dans une structure de données de type file. Un processus prêt est enfilé et un
processus élu est défilé.
19/27
Chapitre 7 Les processus
Parmi les propositions suivantes, recopier celle qui décrit le fonctionnement des
entrées/sorties dans une file :
4. On suppose que les quatre processus arrivent dans la file et y sont placés dans l'ordre
C1, C2, C3 et C4 . Les temps d'exécution totaux de C1, C2, C3 et C4 sont respectivement
100 ms, 190 ms, 80 ms et 60 ms.
20/27
Chapitre 7 Les processus
Programme 1 Programme 2
Verrouiller fichier_1 Verrouiller fichier_2
Calculs sur fichier_1 Verrouiller fichier_1
Verrouiller fichier_2 Calculs sur fichier_1
Calculs sur fichier_1 Calculs sur fichier_2
Calculs sur fichier_2 Déverrouiller fichier_1
Calculs sur fichier_1 Déverrouiller fichier_2
Déverrouiller fichier_2
Déverrouiller fichier_1
21/27
Chapitre 7 Les processus
Un tour a lieu quand les 4 périphériques ont été sollicités. Au début d'un nouveau tour, on
considère que toutes les adresses sont disponibles en lecture et écriture.
Si un périphérique demande la lecture à une adresse à laquelle on n'a pas encore accédé
en écriture pendant le tour, l'ordonnanceur répond "OK" et la lecture a lieu. Plusieurs
lectures peuvent avoir donc lieu pendant le même tour à la même adresse.
Ainsi, pendant un tour, une adresse peut être utilisée soit une seule fois en écriture, soit
autant de fois qu'on veut en lecture, soit pas utilisée.
22/27
Chapitre 7 Les processus
2. On suppose que les périphériques sont sélectionnés à chaque tour dans l'ordre 0 ; 1 ;
2 ; 3. Expliquer ce qu'il se passe pour le périphérique 1.
Les périphériques sont sollicités de la manière suivante lors de quatre tours successifs :
• au premier tour, ils sont sollicités dans l'ordre 0 ; 1 ; 2 ; 3 ;
• au deuxième tour, dans l'ordre 1 ; 2 ; 3 ; 0 ;
• au troisième tour, 2 ; 3 ; 0 ; 1 ;
• puis 3 ; 0 ; 1 ; 2 au dernier tour.
• Et on recommence...
3.a. Préciser pour chacun de ces tours si le périphérique 0 peut écrire et si le périphérique
1 peut lire.
3.b. En déduire la proportion des valeurs écrites par le périphérique 0 qui sont
effectivement lues par le périphérique 1.
Au cours d'un tour, on place dans la liste ATT_L toutes les opérations de lecture mises en
attente, et dans la liste d'attente ATT_E toutes les opérations d'écriture mises en attente.
• on interroge ceux présents dans la liste ATT_L, par ordre croissant d'adresse,
• on interroge ensuite ceux présents dans la liste ATT_E, par ordre croissant
d'adresse,
• puis on interroge les périphériques restants, par ordre croissant d'adresse.
23/27
Chapitre 7 Les processus
Les colonnes e0 et e1 du tableau suivant recensent les deux chiffres de l'écriture binaire
de l'entier n de la première colonne.
24/27
Chapitre 7 Les processus
5.a. Recopier sur la copie et indiquer dans le circuit ci-dessous les entrées e0 et e1 de
façon que ce circuit sélectionne le périphérique 1.
5.b. Dessiner un circuit constitué d'une porte ET et d'une porte NON, qui sélectionne le
périphérique 2.
25/27
Chapitre 7 Les processus
1. La situation
En 1997, la mission Mars Pathfinder rencontre un problème
alors que le robot est déjà sur Mars. Après un certain temps, des
données sont systématiquement perdues. Les ingénieurs
découvrent alors un bug lié à la synchronisation de plusieurs
tâches. Les éléments incriminés étaient les suivants :
• une mémoire partagée, qui était protégée par un mutex (un mutex est un système
de verrou du noyau)
• une gestion de bus sur la mémoire partagée, qui avait une priorité haute
• une écriture en mémoire partagée (récupération de données), qui avait la priorité la
plus basse
• une troisième routine de communication, avec une priorité moyenne, qui ne touchait
pas à la mémoire partagée
Il arrivait parfois que l'écriture (priorité faible) s'approprie le mutex. La gestion du bus
(priorité haute) attendait ce mutex. La commutation de tâches laissait alors la routine de
communication (priorité moyenne) s'exécuter. Or pendant ce temps, le mutex restait
bloqué puisque les ressources étaient allouées à la routine de priorité basse. La gestion
de bus ne pouvait donc plus s'exécuter et après un certain temps d'attente (une protection
insérée par les ingénieurs via un système dit de chien de garde), le système effectuait un
redémarrage. Un tel problème est connu sous le nom d'inversion de priorité.
Le problème n'était pas critique et le code fut corrigé à distance. Toutefois dans d'autres
situations, les conséquences auraient pu être catastrophiques. On a ensuite constaté le
fait que le problème était déjà survenu lors des essais sans avoir été corrigé.
2. Simulation de l'interblocage
Nous allons nous même simuler un interblocage dans une situat :ion qui serait assez
similaire à celle de la liaison martienne. On va considérer un robot qui a trois ressources
Des moteurs qui lui permettent de se déplacer Une liaison wifi qui lui permet de
communiquer Une caméra qui filme son environnement Ce robot a trois processus que
l'on notera P1, P2 et P3 :
• P1 est le pilotage manuel qui reçoit les ordres par le wifi et opère les moteurs
26/27
Chapitre 7 Les processus
Cette séquence d'instruction peut se dérouler parfaitement bien, mais on peut arriver à
une situation d'interblocage par un cycle.
27/27