Chapitre2 Système Dexploitation 2
Chapitre2 Système Dexploitation 2
Chapitre2 Système Dexploitation 2
Chapitre N°2:
Exclusion mutuelle dans un système
d’exploitation
Mr BENAISSA Mohamed
E-mail : benaissa_samir@yahoo.fr
1
Université Aboubekr BELKAID
كلية العلوم – تيجاني هدام
Faculté des Sciences – Tidjani HAddam
قسم اإلعالم اآللي
Département d’informatique
Algorithme de Peterson
3
Définition d’exclusion mutuelle
4
Exemple
5
Exemple – scénario 1
6
Exemple – scénario 2
A l'issue du premier
scénario, le compte
valait 10220 DA !!!
7
Conclusion
8
Schéma d’exécution des processus pour entré dans la Section critique
Processus pi
{
Code d’entrée-SC (prologue) //les instructions qui précède l’entré à la SC
utilisation de la section-critique
Code de sortie-SC (epilogue) //instructions exécuté après la sortie de la SC
hors-SC
}
9
Propriétés attendues de l’exclusion mutuelle
1. Exclusion mutuelle
Garantir q’un seul processus a un moment donné entre dans la section critique
10
Solution logicielle de l’exclusion mutuelle : Attente active
attente active est une boucle jusqu’à que la section critique devient libre
12
Attente active : Solution : verrouillage par une variable
Processus Pi
Debut
tant que occupé faire rien (boucle ou attente active) (interruption *);
occupé := vrai;
occupé := faux
fin
13
Attente active
Solution avec tableau de booléens qui indiquent qui veut entrer en section
critique
Processus Pi
Debut
demande[i] : = vrai (interruption **);
tant que demande[j] faire rien (boucle)
< section critique >
demande[i] : = faux ;
Fin
Voila l’algorithme:
Contexte commun : var tour : 1, 2 ;
tour : = 1 ; (tour initialisé a 1)
Processus Pi
Début
Tant que tour ≠ i faire boucle (attente active)
< Section critique >
Tour : = j ;
Fin
16
Algorithme de PETERSON
Vous avez le programme suivant :
Contexte commun : var c : tableau [1..2] : entier ;
tour : 0.. 1 ;
tour := 0 ; c [0] := 0 ; c[1] := 0 ;
Processus Pi
debut
c [i] : = 1 ;
tour :=j;
répéter
faire rien (boucle)
<section critique>
c [i] : = 0 ;
fin
Q1 : vérifier la contrainte de l’exclusion mutuelle.
17
Solution matérielle de l’Exclusion mutuelle
18
La fonction TAS (Test And Set)
19
Fonction TAS (var m : 0…1):booléen;
Début
si m == 0 alors
début
m:= 1;
TAS := vrai;
fin
sinon TAS := faux;
Fin
jusqu’à TAS(p)
< section critique>
p:= 0;
fin
20
Q: vérifiez la contrainte d’exclusion mutuelle
Université Aboubekr BELKAID
كلية العلوم – تيجاني هدام
Faculté des Sciences – Tidjani HAddam
قسم اإلعالم اآللي
Département d’informatique
Mr BENAISSA Mohamed
E-mail : benaissa_samir@yahoo.fr
21