Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Mécanismes
de synchronisation
de synchronisation
Interblocage
Interblocage
et traitement
et traitement
Communication
Passage
entrede
processus
messages
Politique équitable.
Introduction Mécanismes
Mécanismes
de synchronisation
de synchronisation
Interblocage
Interblocage
et traitement
et traitement
Communication
Passage
entrede
processus
messages
Politique équitable.
Politique équitable.
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
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.
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
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).
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
Exemple : Interblocage.
Exemple :
P1 ... Pi ... Pm
... ...
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.
R1
possède
P1 P2 demande
R2
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
Cas 2 : Interblocage.
Cas 2 : Interblocage.
Cas 2 : Interblocage.
Cas 2 : Interblocage.
Cas 2 : Interblocage.
Cas 2 : Interblocage.
Cas 2 : Interblocage.
Cas 2 : Interblocage.