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