Exclusion mutuelle distribuées

publicité
Exclusion mutuelle distribuées
Benmoussa Yahia
Université M’hamed Bougara de Boumerdès
[email protected]
Exclusion mutuelle distribuée
„
„
„
Parmi les objectif d’un système distribué :
– Transparence en terme d’accès concurrent aux
ressources partagés
Dans un système distribué, les ressources sont
accédées simultanément par plusieurs processus
Les processus doivent se synchroniser pour garantir
des accès cohérents aux ressources partagées
2
Exclusion mutuelle :
propriétés
„
L'accès en exclusion mutuelle doit respecter deux
propriétés
– Sûreté : au plus un processus est à la fois dans
la section critique (dans l'état dedans)
– Vivacité : tout processus demandant à entrer
dans la section critique (à passer dans l'état
dedans) y entre en un temps fini
3
Exclusion mutuelle :
propriétés
4
Algorithme centralisé
„
„
„
„
Un processus Pc est élu comme coordinateur
Si Pi veut entrer dans la SC S, il envoie un message
REQUEST pour obtenir la permission au processus Pc.
Il se bloque jusqu’à ce qu’il reçoit un message GRANT
Si aucun processus n’est dans la SC S alors Pc envoie
un message GRANT à Pi
Si un autre processus Pj est dans la SC S alors :
– Mettre la requête de Pi dans la file d’attente
– Attendre que Pj libère la SC en envoyant un message
RELEASE à Pc
– Pc retire le premier processus dans la file d’attente et
lui envoie un message GRANT
5
Algorithme centralisé
6
Algorithme centralisé
7
Algorithme centralisé
8
Algorithme centralisé
„
„
Avantages
– Facile à implémenter
– Utilise 3 messages (REQUEST, RELEASE, GRANT)
pour chaque entrée/sortie d’une section critique
Inconvénient
– Coordinateur : Single Point of Failure + Goulot
d’étranglement
– Si un processus ne reçoit pas de GRANT : Ressource
utilisé ou coordinateur en panne ?
• Solution : Utilisation d’un message DENY + Timeout
9
Algorithme de Ricart & Agrawala
„
„
Requiert un ordre total des évènements dans le
système
Utilisation d’une horloge logique est suffisante
(exemple : Horloge de Lamport)
10
Algorithme de Ricart & Agrawala
„
„
Si Pi veut entrer en SC S, il construit un message (S,PID,Ti)
à tous les autre processus et attend un message GRANT de
chacun d’eux pour entrer en SC
Si Pj reçoit un message, Alors 3 cas :
– Si Pj n’est pas en SC et ne veut pas entrer en SC Alors
réponde par GRANT
– Si Pj est en SC alors il met le message en file d’attente. Pj
envoie un message GRANT à tous les processus dans la
file d’attente lorsque il sort de la SC
– Si Pi n’est pas en SC et veut entrer dans la même SC alors
• Comparer timestamp du message qu’il a émis avec le
timestamp du message reçu
• Si timestamp du message reçu est le plus faible alors envoyer
un message GRANT
• Sinon, mettre le message reçu en file d’attente. Pj ne répond
pas
11
Algorithme de Ricart & Agrawala
12
Algorithme de Ricart & Agrawala
13
Algorithme de Ricart & Agrawala
14
Algorithme de Ricart & Agrawala
„
„
„
Utilise 2(N-1) messages pour chaque entrée/sortie
d’une section critique
Si un parmi le N processus tombe en panne Æ
Blocages des processus voulant entrer en SC
– Solution : Utilisation d’un message DENY +
Timeout
En général : L’algorithme est lent, complexe est plus
couteux que l’algorithme centralisé néanmoins il
prouve l’existence d’un algorithme distribué
d’exclusion mutuelle
15
Algorithme à Jeton
16
Références
„
„
„
Distributed Systems: Principles and Paradigms.
Andrew S. Tannenbaum & Maarten van Steen.
http://www.cs.vu.nl/~ast/books/ds1/. (En anglais).
Distributed Systems Concepts and Design. George
Coulouris, Jean Dollimore and Tim Kindberg
Paul Krzyzanowski.
http://www.cs.rutgers.edu/~pxk/index.html. (En
anglais).
17
Téléchargement