Vous êtes sur la page 1sur 11

Systèmes d’exploitation BTS RS 2 M.

EKOKO

 Algorithmes avec files d’attente multiniveaux :

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.

 Ordonnancement avec files d’attente multiniveaux et feedback :

L’ordonnancement avec des files d’attente feedback multiniveaux permet aux


processus de se déplacer entre les files d’attente. L’idée revient à séparer les processus en
fonction de l’évolution de leurs caractéristiques dans le système.

I. COMMUNICATION ET SYNCHRONISATION INTER PROCESSUS :

I.1- Notions générales :

Dans un système multi processus, un ensemble de processus séquentiels s’exécutent


en parallèle (ou pseudo parallèle). Il en résulte deux types de relations entre ces processus :
- Les relations conflictuelles, lorsque les processus se partagent des ressources
physiques ou Logiques,
- Les relations de coopération, lorsque les processus participent à un traitement global
afin d’être synchronisés.

Dans tous les cas, il arrive souvent que ces processus aient besoin de communiquer entre eux
pour être synchronisés.

I.2- Définition des concepts :


Systèmes d’exploitation BTS RS 2 M. EKOKO

a) La synchronisation :

La synchronisation est un mécanisme de communication interprocessus qui permet à


un processus actif de changer son état (Actif à bloqué) ou de changer l’état d’un autre
processus (bloqué à actif).

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

I.3- Les problèmes de la communication inter processus :

Il existe essentiellement trois problèmes génériques de synchronisation :


 Section critique et exclusion mutuelle
 Schéma des Lecteurs Rédacteurs
 Schéma des Producteurs Consommateurs

a) Le problème de la section critique et exclusion mutuelle :

On appelle section critique d'un processus, la phase du processus pendant laquelle ce


dernier partage une ressource (ressource critique) avec d’autres processus.

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

La solution admissible d’exclusion mutuelle doit vérifier les propriétés de bon


fonctionnement suivantes :
 Exclusion : A tout instant un seul processus au plus est en section critique (définition
de la section critique).

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.

D'une manière générale, l'exécution de la section critique est contrôlée par un


protocole formé de deux parties (l'acquisition et la libération de la section critique) et a la
forme suivante :

b) Le problème des Lecteurs Rédacteurs :

Le problème apparait lorsque plusieurs processus partagent un même fichier. Ce


fichier peut être accédé par des processus qui le consultent (lecteurs) ou par des processus qui
le modifient (rédacteurs). La cohérence du fichier sera menacée si ce dernier n'est pas
manipulé avec précaution selon un protocole bien déterminé.

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

La structure des processus lecteurs et rédacteurs est la suivante :


Systèmes d’exploitation BTS RS 2 M. EKOKO

c) Le problème du producteur consommateur :

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.

Le problème se produit lorsque le producteur souhaite placer un nouveau message


dans un tampon plein ou lorsque le consommateur souhaite retirer un message d’un tampon
vide.

La solution pour le producteur est d’entrer en sommeil jusqu’à ce qu’un


consommateur supprime un ou plusieurs messages du tampon. De même, pour le
consommateur, la solution est d’entrer en sommeil jusqu’à ce qu’un producteur ait placé
quelque chose dans le tampon.

Le protocole qui implémente ce modèle doit prendre en compte les contraintes


suivantes :
 Le tampon est composé de N cases, chacune d'elle peut contenir un message.
 Aucune hypothèse n'est faite sur les vitesses des 02 processus.
 Les messages ne doivent pas être perdus, si le tampon est plein (contient N messages
non retirés), on ne peut y déposer de message supplémentaire
 Un message donné n'est retiré qu'une seule fois après avoir être déposé.
 Une opération impossible (dépôt dans un tampon plein ou retrait depuis un tampon
vide) bloque le processus qui tente de l'exécuter.

La structure des deux processus est la suivante :

I.4- Les mécanismes de synchronisation Interprocessus :

a) Le mécanisme de masquage d’interruption :


Systèmes d’exploitation BTS RS 2 M. EKOKO

Le masquage d’interruption permet au processeur d’exécuter le code de la section


critique jusqu’à sa fin sans être interrompu par un autre processus. Par contre, le démasquage
permet de remettre le processeur dans un état autorisant la prise en compte des interruptions.

Ce mécanisme présente les deux caractéristiques suivantes :


 Valable uniquement sur machine monoprocesseur car le fait de masquer les
interruptions d'un processeur n’entraîne pas le masquage des autres processeurs.
 Si la séquence du code critique est assez longue, on risque de perdre des interruptions
soulevées car aucun processus ne doit attendre indéfiniment.

L’utilisation de ce mécanisme se fait de la manière suivante :

b) Le mécanisme de Test And Set (TAS) :

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.

Le code qui implémente cette solution a la forme suivante :

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

Conceptuellement, un sémaphore peut être vu comme un distributeur de tickets,


initialement dispose d'un certain nombre de tickets, éventuellement 0 ticket.

Un processus utilisateur demande un ticket en invoquant sur un sémaphore deux


opérations :
 Une opération appelée P (demander) : si au moins un ticket est disponible, le
processus appelant le prend et continue son exécution. Dans le cas contraire, la
demande est enregistrée dans une file d'attente et le processus est bloqué dans l'attente
d'une condition (disponibilité d'un ticket pour lui).

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

Parmi les variantes de sémaphores en peut citer :


 Sémaphore d'exclusion mutuelle : encore appelé sémaphore « mutex » est un cas
particulier des sémaphores à compte. Initialisé à 1, il autorise un seul processus actif à
franchir P(mutex).

 Sémaphore privé : Un sémaphore Sp est privé à un processus p si seul le processus p


peut exécuter les opérations P(Sp) et V(Sp). Les autres processus ne peuvent agir sur
Sp que par V(Sp). La valeur initiale de Sp est égale à 0.

La réalisation de l'exclusion mutuelle à l'aide des sémaphores se fait selon le schéma


suivant :
Systèmes d’exploitation BTS RS 2 M. EKOKO

TRAVAUX DIRIGES SUR LA GESTION DES PROCESSUS


Systèmes d’exploitation BTS RS 2 M. EKOKO

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 ?

2) Qu’est-ce qu’un système multiprogrammé ? Un système de traitement par lots ? Un


système en temps partagé ?

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 ?

4) Quel est le rôle de l’ordonnanceur ? Décrire brièvement l’ordonnanceur du système


UNIX ? Favorise-t-il les processus interactifs ?

Exercice 2 :

On considère 4 processus, A, B, C, D. On suppose que l’exécution des processus nécessite :


• Pour A : 7 unités de temps CPU, 3 unités de temps d'E/S et 5 unités de temps CPU.
• Pour B : 6 unités de temps CPU, 4 unités de temps d’E/S, 4 unités de temps CPU.
• Pour C : 5 unités de temps CPU.
• Pour D : 1 unité de temps CPU, 4 unités de temps d’E/S et 2 unités de temps CPU.
On suppose que
• A se présente en premier, à l’instant 0,
• B se présente à l’instant 1,
• C se présente à l’instant 9,
• D se présente à l’instant 12.
Montrez comment les 4 processus vont utiliser le processeur dans chacun des cas suivants :
1) Chaque processus a son propre périphérique d’E/S et l’ordonnanceur fonctionne selon
Premier Arrivée Premier Servi PAPS (sans préemption).
2) Chaque processus a son propre périphérique d’E/S et l’ordonnanceur utilise
l'algorithme du tourniquet, avec un quantum de 5. Le temps de commutation est égal à
0. Donnez, dans ce cas, les temps de séjour des processus A, B, C et D.
3) Les trois processus utilisent le même périphérique d'E/S dont la file d'attente est gérée
premier arrivée premier servi. L’ordonnanceur du processeur utilise l'algorithme du
tourniquet, avec un quantum de 5.
Le temps de commutation est supposé égal à 0.

Exercice 3 : – Notions de cours

1) Pourquoi le partage de ressources pose des problèmes dans un système


multiprogrammé en temps partagé ?

2) Le système UNIX permet-il de contrôler les accès aux ressources partagées ?


Systèmes d’exploitation BTS RS 2 M. EKOKO

3) Qu’est-ce qu’une section critique ?

4) Laquelle de ces affirmations sur les sémaphores est exacte ?

A. Un processus peut se bloquer lorsqu'il libère un sémaphore « plein ».


B. Un processus peut se bloquer lorsqu'il demande un sémaphore « vide ».
C. Un processus peut se bloquer lorsqu'il crée un sémaphore.
D. Un processus peut se bloquer lorsqu'il libère un sémaphore sur lequel un autre
processus est en attente.

Exercice 4 : – Sémaphores de synchronisation

On considère 6 blocs d'instructions, S1 à S6. Un graphe de préséance présente les


contraintes sur l'ordre d'exécution des instructions. Par exemple, la flèche allant de S1 vers S2
indique que l'instruction S2 doit nécessairement être exécutée après S1. On place chaque bloc
d'instruction dans un processus distinct P1 à P6.
Utilisez des sémaphores pour synchroniser les processus de manière à respecter les
contraintes du graphe de préséance ci-dessous :

S1
Process P1 { S1; }

Process P2 { S2; }
S2 S3 S4
Process P3 { S3; }

Process P4 { S4; }

Process P5 { S5; } S5
Process P6 { S6; }
S6

Exercice 5 : – Sémaphores d'exclusion mutuelle

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 ;

Code du processus P1 : Code du processus P2 : Code du processus P3 :


mutex1.P() ; mutex2.P() ; mutex1.P() ;

mutex2.P() ; out=out-1 ; n=n+1 ;


Systèmes d’exploitation BTS RS 2 M. EKOKO

out=out+1 ; mutex2.V() ; mutex1.V() ;


n=n-1 ;
mutex2.V() ;
mutex1.V() ;
1) Cette proposition est-elle correcte ? Si non, pourquoi ?

2) Proposer une solution correcte.

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 :

Demande d’accès à la voie par A; Demande d’accès à la voie par B ;


Circulation sur la voie de A vers B; Circulation sur la voie de B vers A;
Sortie de la voie par B; Sortie de la voie par A;
1) Parmi les modèles étudiés en cours (producteur/consommateur, lecteur/rédacteur, les
philosophes), à quel modèle ce problème correspond-il ?

2) En utilisant les sémaphores (opérations P et V), traduire les demandes d’accès et de


sorties, de façon à ce que les processus respectent les règles de circulation sur la voie
unique.

Exercice 5 – Producteurs/consommateurs

Considérons le problème producteur/consommateur vu en cours. n producteurs


produisent des messages et les déposent dans un tampon de taille illimitée. n consommateurs
peuvent récupérer les messages déposés dans le tampon.
Semaphore Mutex = 1 ;
Message tampon[];

Producteur ( )
{
Message m ;

Tantque Vrai faire m


=
creermessage()
;
Mutex.P() ;
EcritureTampon(
m);
Mutex.V() ;
FinTantque
}

Consommateur( )
{
Message m ;
Systèmes d’exploitation BTS RS 2 M. EKOKO

Tantque Vrai faire


Mutex.P() ; m =
LectureTampon()
;
Mutex.V() ;
Fin Tantque
}

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

Vous aimerez peut-être aussi