Vous êtes sur la page 1sur 18

Introduction Mécanismes

Mécanismes
de synchronisation
de synchronisation
Interblocage
Interblocage
et traitement
et traitement
Communication
Passage
entrede
processus
messages

Politique équitable.

 Aussi équitable que FIFO, mais en autorisant un passage parallèle


et non sérialisé des lecteurs

05/12/2019 Synchronisation et Communication 63


entre Processus

Introduction Mécanismes
Mécanismes
de synchronisation
de synchronisation
Interblocage
Interblocage
et traitement
et traitement
Communication
Passage
entrede
processus
messages

Politique équitable.

 Aussi équitable que FIFO, mais en autorisant un passage parallèle


et non sérialisé des lecteurs

05/12/2019 Synchronisation et Communication 64


entre Processus
Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus

Politique équitable.

 Aussi équitable que FIFO, mais en autorisant un passage parallèle


et non sérialisé des lecteurs

05/12/2019 Synchronisation et Communication 65


entre Processus

Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus

Politique favorisant les rédacteurs.

Accès au fichier
barrière
en excl. mut.
Mutex_b antichambre
lecteur

oux
oux

Mutex_a
rédacteur
Mutex_fichier
- Les lecteurs sont en excl. mut. pour l’accès à l’antichambre
- Les rédacteurs ne sont pas en excl. mut. pour l’accès à l’antichambre.
- Lorsqu’un lecteur l et un rédacteur r arrivent simultanément alors qu’un
autre lecteur l’ est en cours alors lorsque l’ termine sa lecture, il libère
d’abord l’accès à l’antichambre puis à la barrière. Le rédacteur passera
donc le premier.
- Le nombre de rédacteurs dans l’antichambre n’est pas borné.
05/12/2019 Synchronisation et Communication 66
entre Processus
Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus

Politique favorisant les rédacteurs.

Soit :
 Mutex_fichier : sémaphore INIT 1
 excl. mut. entre lecteurs et rédacteurs pour l’accès au fichier.
 excl. mut. entre rédacteurs pour l’accès au fichier.
 Mutex_a : sémaphore INIT 1
 excl.mut. entre lecteurs et rédacteurs pour l’accès à l’antichambre.
 excl. mut. entre lecteurs pour l’accès à l’antichambre.
 Mutex_b : sémaphore INIT 1
 Un lecteur pourra passer la barrière s’il n’y a pas de lecteurs en attente dans
l’antichambre ou en attente d’accéder à l’antichambre.
 Nb_ra : entier INIT 0
 Nombre de rédacteurs dans l’antichambre.
 Mutex_nbra : sémaphore INIT 1
 Pour l’accès en excl. mut. à la variable Nb_ra.
 Nb_lect : entier INIT 0
 Nombre de lecteurs.
 Mutex_nbl : sémaphore INIT 1
 Pour l’accès en excl. mut. à la variable Nb_lect.

05/12/2019 Synchronisation et Communication 67


entre Processus

Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus

Politique favorisant les rédacteurs.

var. commune Mutex_fichier : sémaphore INIT 1;


Mutex_nbl : sémaphore INIT 1; Mutex_nbra : sémaphore INIT 1;
Mutex_b : sémaphore INIT 1; Mutex_a : sémaphore INIT 1;
Nb_lect : entier INIT 0; Nb_ra : entier INIT 0;
Lecteur Rédacteur
P(Mutex_b); P(Mutex_nbra);
P(Mutex_a); Nb_ra:=Nb_ra+1;
P(Mutex_nbl); Si (Nb_ra=1) Alors
Nb_lect:=Nb_lect+1; P(Mutex_a);
Si (Nb_lect=1) Alors /* premier lecteur : obtenir fichier */ FinSi
P(Mutex_fichier); V(Mutex_nbra);
FinSi P(Mutex_fichier);
V(Mutex_nbl); < Ecrire … >
V(Mutex_a); V(Mutex_fichier);
V(Mutex_b); P(Mutex_nbra);
< Lecture … > Nb_ra:=Nb_ra-1;
P(Mutex_nbl); Si (Nb_ra=0) Alors
Nb_lect:=Nb_lect-1; V(Mutex_a);
Si (Nb_lect=0) Alors /* dernier lecteur : relâcher fichier */ Finsi
V(Mutex_fichier); V(Mutex_nbra);
FinSi …
V(Mutex_nbl);
05/12/2019 Synchronisation et Communication 68

entre Processus
Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus

Politique favorisant les rédacteurs.

Ecriture en cours :
 Interdit l’accès à l’antichambre pour les lecteurs mais non pour les
rédacteurs.
Les nouveaux rédacteurs pourront par la suite écrire un à un.

Lecture en cours :
 N’interdit pas l’accès à l’antichambre aux rédacteurs.
1. Si pas de nouveaux rédacteurs : les lecteurs pourront passer à
l’antichambre un à un.
2. Si un lecteur et un rédacteur demandent à accéder à l’antichambre
qui est vide :
 Le lecteur fait P(Mutex_a) avant le rédacteur : le lecteur entre dans
l’antichambre, libère l’accès à l’antichambre V(Mutex_a) puis fait
sa lecture. Le rédacteur pourra donc y entrer
 Le rédacteur fait P(Mutex_a) avant le lecteur :
Interdit l’antichambre pour le lecteur, les autres lecteurs étant
bloqués par la barrière.
Ce rédacteur pourra écrire lorsque la dernière lecture en cours se
05/12/2019 termine. Synchronisation et Communication 69
entre Processus

Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus

3. Interblocage et traitement.

 Objectifs :
 Analyser les situations d'interblocage de procesus
 Modéliser les situations d'interblocage de processus
 Traiter le problème d'interblocage de processus

 Interblocage [Tanenbeaum]
Un ensemble de processus est dans une situation d'interblocage si
chaque processus attend un événement que seul un autre
processus de l'ensemble peut provoquer.
(L'événement signifie ici acquisition ou libération de ressource).

05/12/2019 Synchronisation et Communication 70


entre Processus
Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus

Protocole d'accès aux ressources.

 On considère un système constitué d'un nombre fini de ressources devant


être distribuées parmi un certain nombre de processus concurrents.
Les ressources sont groupées en classes (types : Imprimantes, mémoires,
registres, fichiers,...).
Chaque classe de ressources comporte un nombre fini d'exemplaires
(copies identiques).
 Pour acquérir une ressource chaque processus suit le protocole suivant :

Demander (Ri)
< Utilisation >
Liberer (Ri)
Demander() et Liberer() sont généralement des appels systèmes (Open et
Close File, Request et release Device, Allocate et Free Memory).
Le système doit suivre l'état des ressources (libre, allouée) et
décider (suivant une politique) à qui allouer une ressource libre.
Si la ressource est occupée, le processus demandeur est mis en attente
(de l'événement «libération de ressource»)
05/12/2019 Synchronisation et Communication 71
entre Processus

Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus

Exemple : Interblocage.

 On considère un système constitué de deux processus P1 et P2 et de deux


ressources non partageables R1 (ex : imprimante) et R2 (ex : fichier
ouvert en écriture)
P1 P2
1. Demander(R1) 1. Demander(R2)
2. Demander(R2) 2. Demander(R1)
<Traitement> <Traitement>
3. Liberer(R1) 3. Liberer(R2)
4. Liberer(R2) 4. Liberer(R1)
Exemple d'interblocage
 Les deux processus respectent le protocole d'acquisition de ressources
mais si l'on considère une exécution concurrente on peut aboutir à :
P1.1/ P1 obtient la ressource R1
P2.1/ P2 obtient la ressource R2
P1.2/ P1 est mis en attente de la libération de R2
P2.2/ P2 est mis en attente de la libération de R1
C'est une situation d'interblocage.
05/12/2019 Synchronisation et Communication 72
entre Processus
Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus

Conditions nécessaires d'interblocage.

 Une situation d'interblocage peut survenir si les quatre conditions


(nécessaires) suivantes se produisent simultanément dans un
système :
 Criticité : Les processus accèdent à des ressources critiques.
Une ressource au moins doit se trouver dans un mode non
partageable et nécessite une exclusion mutuelle pour son
utilisation.

 Pas d’abandon (Occupation et attente) : Un processus bloqué


sur une demande maintient sa demande et garde les ressources
qu’il possède déjà.
Il peut exister un processus occupant au moins une ressource et
qui attend d'acquérir des ressources supplémentaires détenues
par d'autres processus (allocation partielle).

05/12/2019 Synchronisation et Communication 73


entre Processus

Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus

Conditions nécessaires d'interblocage.

 Pas de préemption (réquisition) : Un processus bloqué sur une


demande ne perd pas les ressources qu’il possède.
Autrement dit, le système d’allocation de ressources ne préempte
pas des ressources possédées par un processus bloqué pour les
donner à un autre demandeur. Les ressources déjà détenues ne
peuvent être retirées de force à un processus. Elles doivent être
explicitement libérées par le processus qui les détient.

 Cycle (Attente circulaire) : Un cycle est présent dans le


graphe d’allocation.
Il existe un ensemble de k processus P1, P2, ..., Pk tels que :
P1 attend une ressource détenue par P2
P2 attend une ressource détenue par P3
...
Pk attend une ressource détenue par P1
05/12/2019 Synchronisation et Communication 74
entre Processus
Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus
Modélisation de l'allocation des ressources
par graphe orienté.

Cette modélisation a été proposée par Holt en 1972


 Types d'arcs et de nœuds du graphe :

 Le graphe possède deux types de nœuds :

 Des processus, illustrés par des cercles

 Des ressources représentées par des carrés.

 Le graphe possède deux types d'arcs :

 Arc de requête : allant d'un processus à une ressource.


Signifie que le processus a demandé la ressource et il est en
attente de sa libération.
 Arc d'acquisition : allant d'une ressource à un processus.
Signifie que le processus détient la ressource.

05/12/2019 Synchronisation et Communication 75


entre Processus

Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus

Modélisation de l'allocation des ressources


par graphe orienté.

 Exemple :

Représentation du graphe de l'allocation de ressources

05/12/2019 Synchronisation et Communication 76


entre Processus
Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus
Modélisation de l'allocation des ressources
par graphe orienté.

 Si l’on ne s’intéresse qu’à ce problème de conflit, un système


d’exploitation entre donc dans la classe des systèmes parallèles à
ressources critiques. Ce genre de système peut être modélisé sous
la forme d’un ensemble de processus et de classes de resources.

P1 ... Pi ... Pm

... ...

Classe C1 Classe Ci Classe Cn


Système parallèle à ressources critiques
05/12/2019 Synchronisation et Communication 77
entre Processus

Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus

Modélisation de l'allocation des ressources


par graphe orienté.

 Un tel système peut être alors abstrait sous la forme d’un graphe.
 Les sommets peuvent être soit des processus, soit des ressources
critiques.
 Un arc existe seulement entre un processus et une ressource dans
deux situations selon son orientation :
 Un arc orienté du processus vers la ressource existe lorsque le
processus est bloqué sur la demande de la ressource (qui est
occupée par un autre processus)
 Un arc orienté de la ressource vers le processus existe lorsque le
processus a obtenu la ressource.
 Ce graphe représente l’état du système en ce qui concerne
l’allocation des ressources aux processus.

05/12/2019 Synchronisation et Communication 78


entre Processus
Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus
Modélisation de l'allocation des ressources
par graphe orienté.

 Exemple de graphe captant l’état du système composé de deux


processus et deux ressources.

R1
possède
P1 P2 demande

R2

Interblocage entre deux processus

05/12/2019 Synchronisation et Communication 79


entre Processus

Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus

Modélisation de l'allocation des ressources


par graphe orienté.

 Le code des deux processus est de la forme suivante :


P1 P2
1. Demander(R1) 1. Demander(R2)
2. Demander(R2) 2. Demander(R1)
<Traitement> <Traitement>
3. Liberer(R1) 3. Liberer(R2)
4. Liberer(R2) 4. Liberer(R1)
 Le graphe illustre une situation possible atteinte par ce système lorsque
les processus en sont arrivés aux points de contrôle 1.2 pour le processus
P1 et 2.2 pour le processus P2.
 Le processus P1 possède la ressource R1 mais est bloqué sur la demande
de la ressource R2.
 En effet, cette ressource R2 est attribuée au processus P2 qui a lui-même
à son tour demandé la ressource R1.
 On constate qu’il existe alors un cycle dans le graphe d’état courant du
système.
Ce cycle est moyen simple de détection d’un interblocage.
05/12/2019 Synchronisation et Communication 80
entre Processus
Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus
Modélisation de l'allocation des ressources
par graphe orienté.

 L’interblocage n’est qu’un risque.

 Si le processus P1 avait été plus rapide et avait obtenu


les deux ressources R1 et R2 (i.e s’il avait atteint le
point de contrôle 1.2) avant que le processus P2 ait
demandé la ressource R2, l’interblocage n’aurait pas eu
lieu.

 Si l’on veut qu’un système n’atteigne pas une situation


d’interblocage, il faut donc empêcher la formation
d’un tel cycle, les sommets processus appartenant au
cycle étant en situation d’interblocage.
05/12/2019 Synchronisation et Communication 81
entre Processus

Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus

Cas d'un seul exemplaire de ressource.

 ex : Un système est composé de trois processus P1, P2 et P3 et de


trois ressources R1, R2 et R3.
Les demandes et les libérations de ressources sont les suivantes :

P1 P2 P3
Demande R1 Demande R2 Demande R3
Demande R2 Demande R3 Demande R1
Liberation R1 Liberation R2 Liberation R3
Liberation R2 Liberation R3 Liberation R1

Demande de ressources par trois processus

Suivant l'ordre d'exécution des instructions, le système peut entrer


dans une situation d'interblocage ou non.

05/12/2019 Synchronisation et Communication 82


entre Processus
Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus

Cas 1 : Pas d'interblocage.

05/12/2019 Synchronisation et Communication 83


entre Processus

Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus

Cas 1 : Pas d'interblocage.

05/12/2019 Synchronisation et Communication 84


entre Processus
Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus

Cas 1 : Pas d'interblocage.

05/12/2019 Synchronisation et Communication 85


entre Processus

Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus

Cas 1 : Pas d'interblocage.

05/12/2019 Synchronisation et Communication 86


entre Processus
Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus

Cas 1 : Pas d'interblocage.

05/12/2019 Synchronisation et Communication 87


entre Processus

Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus

Cas 1 : Pas d'interblocage.

05/12/2019 Synchronisation et Communication 88


entre Processus
Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus

Cas 1 : Pas d'interblocage.

Cas 1 : Pas d'interblocage


05/12/2019 Synchronisation et Communication 89
entre Processus

Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus

Cas 2 : Interblocage.

05/12/2019 Synchronisation et Communication 90


entre Processus
Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus

Cas 2 : Interblocage.

05/12/2019 Synchronisation et Communication 91


entre Processus

Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus

Cas 2 : Interblocage.

05/12/2019 Synchronisation et Communication 92


entre Processus
Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus

Cas 2 : Interblocage.

05/12/2019 Synchronisation et Communication 93


entre Processus

Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus

Cas 2 : Interblocage.

05/12/2019 Synchronisation et Communication 94


entre Processus
Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus

Cas 2 : Interblocage.

05/12/2019 Synchronisation et Communication 95


entre Processus

Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus

Cas 2 : Interblocage.

Cas 2 : Exécution avec interblocage


05/12/2019 Synchronisation et Communication 96
entre Processus
Introduction Mécanismes de synchronisation Interblocage et traitement Communication entre processus

Cas 2 : Interblocage.

Si chaque type de ressource possède exactement un


seul exemplaire alors : Il y a situation d'interblocage
ssi le graphe d'allocation possède un cycle.

05/12/2019 Synchronisation et Communication 97


entre Processus

Vous aimerez peut-être aussi