Académique Documents
Professionnel Documents
Culture Documents
EKOKO
Ils sont utilisés pour des situations où on peut facilement classer les processus dans
des groupes différents.
Par exemple, il serait intéressant de faire une distinction entre les processus de
premier plan (interactifs) et les processus d’arrière-plan (traitement par lot).
Ainsi, un algorithme de d’ordonnancement avec des files d’attente multiniveaux
découpe la file d’attente des processus prêts en plusieurs files d’attentes séparées qui peuvent
être gérées par des algorithmes différents.
Dans tous les cas, il arrive souvent que ces processus aient besoin de communiquer entre eux
pour être synchronisés.
a) La synchronisation :
b) Les ressources :
Une ressource est dite locale à un processus s'il est le seul à pouvoir l'utiliser. Sinon,
elle est dite globale. Une ressource locale disparaît à la mort du processus.
Une ressource est dite partageable avec n points d'accès si elle peut être attribuée, au
même instant, à n processus (un fichier ouvert en lecture, les commandes sous UNIX).
Une ressource partageable avec un point d'accès est dite critique (processeur,
imprimante, etc.).
L’exclusion mutuelle est une méthode qui permet de s’assurer que si un processus
utilise une variable ou une ressource partagée, les autres processus seront exclus de la même
activité.
Exemple :
Considération 02 processus P1 et P2 qui veulent mettre à jour une variable commune
Var qui contient une valeur initiale égale à 17. On suppose que les deux processus
s’exécutent sur deux processeurs différents UC1 (Acc1), UC2 ‘Acc2) et de vitesses
inconnues.
Les 02 processus auront la structure suivante :
Systèmes d’exploitation BTS RS 2 M. EKOKO
Notre objectif est d’ajouter 5 à cette variable Var. L'instruction d'affectation se traduit
en assembleur par les instructions suivantes :
1- Load Acc1, Var a- Load Acc2, Var
2- ADD 3 b- ADD 2
3- Store Var c- Store Var
L'exécution de ces actions dans l'ordre 1a 2b 3c pose le problème de l’accès simultané
de P1 et P2 a cette variable.
Pour résoudre ce problème, P2 exclu P1. Le résultat sera donc Var = 19 au lieu de 22.
Le protocole le plus simple est celui qui favorise les lecteurs et ses caractéristiques
sont :
Plusieurs lecteurs peuvent lire en parallèle dans le fichier.
Un rédacteur doit avoir l'accès exclusif au fichier.
Si le fichier est déjà accédé en lecture toute nouvelle demande de lecture sera
immédiatement honorée, même si des rédacteurs sont en attente.
Lorsque le fichier est libre un lecteur et un rédacteur ont la même priorité.
Il s’agit de deux processus qui partagent un tampon commun de taille fixe. L’un
d’eux, dit le producteur, place des informations « messages » dans le tampon ; l’autre, dit le
consommateur, les récupère.
C’est une instruction élémentaire qui permet de tester et de positionner une variable.
Ce mécanisme présente les caractéristiques suivantes :
Nécessite un mécanisme élémentaire câblé pour protéger la variable EtatRessource.
Monopolise le processeur et donc dégrade la performance de la machine. Non adapté
dans un environnement monoprocesseur.
Dans le cas de l’exclusion mutuelle, l’instruction TAS met à jour une variable partagée
« EtatRessource » qui indique l’état de la section critique (SC) :
EtatRessource = 0 signifie que la SC est libre.
EtatRessource = 1 signifie que la SC est occupée.
c) Les sémaphores :
Systèmes d’exploitation BTS RS 2 M. EKOKO
Un sémaphore « S » est une variable (entier relatif) qui permet de compter le nombre
de processus en attente d’une section critique, et une file d'attente f(s).
Une opération appelée V (libérer) : qui permet au processus de rendre un ticket dans
au distributeur afin de libérer l’un des processus qui en font la demande dans la file
d'attente, si celle-ci n'est pas vide. Dans le cas contraire, le ticket est conservé dans le
distributeur et donc le prochain demandeur verra sa demande immédiatement
honorée.
Exercice 1 :
1) Quel est le rôle d’un système d’exploitation ? Les interpréteurs de commandes et les
compilateurs font-ils parties du système d’exploitation ?
3) Dans le système UNIX, est-ce que tout processus a un père ? Que se passe-t-il
lorsqu’un processus devient orphelin (mort de son père) ? Quand est-ce un processus
passe à l’état Zambie ?
Exercice 2 :
S1
Process P1 { S1; }
Process P2 { S2; }
S2 S3 S4
Process P3 { S3; }
Process P4 { S4; }
Process P5 { S5; } S5
Process P6 { S6; }
S6
Soient trois processus concurrents P1, P2 et P3 qui partagent les variables n et out.
Pour contrôler les accès aux variables partagées, un programmeur propose les codes suivants :
Semaphore mutex1 = 1 ;
Semaphore mutex2 = 1 ;
Exercice 4 : – Lecteurs/rédacteurs
Deux villes A et B sont reliées par une seule voie de chemin de fer. Les trains peuvent
circuler dans le même sens de A vers B ou de B vers A. Cependant, ils ne peuvent pas
circuler dans les sens opposés.
On considère deux classes de processus : les trains allant de A vers B (Train AversB)
et les trains allant de B vers A (Train BversA). Leur comportement se définit comme suit :
Train AversB : Train BversA :
Exercice 5 – Producteurs/consommateurs
Producteur ( )
{
Message m ;
Consommateur( )
{
Message m ;
Systèmes d’exploitation BTS RS 2 M. EKOKO
1)Adaptez cette solution pour que l'échange des message soit synchronisé (consommateurs
bloqués si le tampon est vide).
2)On considère à présent que un tampon de taille Max (celui-ci peut contenir au plus Max
messages). Ajouter les modifications nécessaires pour prendre en compte cette nouvelle
contrainte (producteurs bloqués si le tampon est plein).