10 Gegenseitiger Ausschluss 10 Gegenseitiger Ausschluss Gegenseitiger Ausschluss Gegenseitiger Ausschluss: Überblick Gegenseitiger Ausschluss Gegenseitiger Ausschluss Gegenseitiger Ausschluss: Überblick Zentraler Koordinator: Gegenseitiger Ausschluss: Überblick Problemstellung I Alle fragen einen „ich will” Zentraler Koordinator: „ich will” „ichokwill” ■ Zentraler Koordinator: „ich will” Alle fragen einen Gegenseitiger Ausschluss: Überblickok „ich will” Gegenseitiger Alle fragen einenAusschluss: Überblick „ich will” „ich will” Zentraler Koordinator: „ich will” „ich will” ■ Zentraler Koordinator: „ich will” ok I Mehrere Prozesse greifen auf gemeinsame Daten/Ressourcen zu; Problemstellung ■ Problemstellung dieser Zugriff muss koordiniert werden: Immer nur ein Prozess Mehrere Prozesse greifen auf gemeinsame Daten/Ressourcen Gegenseitiger Ausschluss darf den kritischen Abschnitt (k. A.) betreten. zu;Mehrere dieser Zugriff muss koordiniert werden: Immer nur ein Prozesse greifen auf gemeinsame Daten/Ressourcen ■ ■ Gegenseitiger Ausschluss Prozess darf Zugriff den kritischen Abschnittwerden: (k. A.) betreten. zu; dieser muss koordiniert Immer nur ein Problemstellung Literatur Prozess darf den kritischen Abschnitt (k. A.) betreten. Problemstellung ■■ Literatur Mehrere Prozesse greifen auf gemeinsame Daten/Ressourcen M. Singhal, Shivaratri: Concepts in Operating ■ I Literatur Mehrere Prozesse greifen aufAdvanced gemeinsame Daten/Ressourcen –Zugriff M. Singhal, N.N. Shivaratri: Advanced Concepts in Operating zu; dieser muss koordiniert werden: Immer nur ein Systems Systems zu; Zugriff muss koordiniert werden: Immer nur ein – dieser M. Singhal, N. Shivaratri: Advanced Concepts in Operating ■ ok Alle ■ fragen einen Vollständig verteilt: verteilt: Vollständig „ich will” Alle fragen einen ■ Vollständig verteilt: ok „ich will” ok I Jeder fragt jeden „ich will” Jeder fragt jeden ok ok „ich will” „ich will” Jeder fragt jeden „ich will” „ich will” Vollständig verteilt: „ich will” ■ Vollständig verteilt: – Lamport: Vollständige Replikation des Systemzustandes ok Prozess darf den kritischen Abschnitt (k. A.) betreten. Systems darf den kritischen (k. A.)Algorithmen betreten. I– Prozess Original-Publikationen zu den einzelnen Algorithmen, siehe Original-Publikationen zu Abschnitt den einzelnen gesammeltes Material zur Vorlesung – Original-Publikationen zu den I Ein guter Überblick über die einzelnen meisten Algorithmen, wichtigen siehe Literatur 1 1 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm ■ Ausschluss.fm: 21.11.05 08:46 ok ok ■ „ich will” ok Ausschluss.fm: 21.11.05 08:46 3 3 sschluss.fm: 21.11.05 08:46 3 2 ■ Tokenbasierte Algorithmen ■ Tokenbasierte Algorithmen T ich darf! suche Token suche Token suche Token – Perpetuum-Mobile-Algorithmus: Token wandert alleine suche Token – Perpetuum-Mobile-Algorithmus: Token wandert alleine suche Token – Algorithmus von Suzuki und Kasami: Broadcast-Suche suche Wie bekommt–man das Token? Algorithmus von Suzuki undToken Kasami: Broadcast-Suche Wie– bekommt man Token? Algorithmus von das Raymond: Suchesuche auf Token Baumstrukturen – Algorithmus von Raymond: Suche auf Baumstrukturen – Algorithmus von Singhal: „Intelligenter” Broadcast Beispiel von Singhal: – Perpetuum-Mobile-Algorithmus: Token„Intelligenter” wandert alleine – Algorithmus Broadcast – Perpetuum-Mobile-Algorithmus: Token wandert alleine – Algorithmus von Suzuki und Kasami: Broadcast-Suche I Perpetuum-Mobile-Algorithmus: Token wandert alleine – Algorithmus von Suzuki und Kasami: Broadcast-Suche – Algorithmus von Raymond: Suche auf Baumstrukturen I vonSuche Suzuki Kasami: Broadcast-Suche Algorithmen für VerteilteAlgorithmus Systeme WS 2005/06 4 – Algorithmus von (AVS), Raymond: auf und Baumstrukturen Algorithmen für Verteilte Systeme (AVS), WS 2005/06 4 – Algorithmus Singhal: Broadcast (C) 2005 Hansvon P. Reiser, Franz J. Hauck,„Intelligenter” Abteilung Verteilte Systeme, Universität Ulm I Algorithmus von Raymond: Suche auf Baumstrukturen – Algorithmus von Singhal: „Intelligenter” Broadcast (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm Ausschluss.fm: 21.11.05 08:46 Ausschluss.fm: 21.11.05 08:46 Ausschluss.fm: 21.11.05 08:46 sschluss.fm: 21.11.05 08:46 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm 2 T (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm 3 10 – 2 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm Wer Token besitzt, darf in k.A.! Wie bekommt man das in Token? Wer Token besitzt, darf k.A.! Wie bekommt man das Token? Algorithmen für Verteilte Systeme (AVS), WS 2005/06 2 ich darf! T Tokenbasierte Algorithmen Gegenseitiger Überblick Wer TokenAusschluss: besitzt, darf in k.A.! Gegenseitiger Ausschluss: I besitzt, Wer Token in k.A.! Wer Token darf besitzt, in k.A.! darf Überblick I Wie bekommt man das Token? Tokenbasierte Algorithmen ich darf! ■ Tokenbasierte Algorithmen T ich darf! suche Token „ich will” (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm Verteilte Systeme 2 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm „ich will” c Kapitza Algorithmen für Verteilte Systeme (AVS), WS 2005/06 – Lamport: Vollständige Replikation des cSystemzustandes Kapitza Verteilte Systeme 2005 Hans P. Reiser, Franz J. Systeme Hauck, Abteilung Verteilte Systeme, Universität Ulm für Verteilte (AVS), WS 2005/06 – Ricart(C)Algorithmen und Agrawala: Reduktion der Nachrichtenzahl – Hans Ricart und Reduktion der Ulm Nachrichtenzahl (C) 2005 P. Reiser, Franz Agrawala: J. Hauck, Abteilung Verteilte Systeme, Universität – Carvalho und Roucairol: Dynamisch Optimierung – Carvalho und Roucairol: Dynamisch Optimierung 10 Gegenseitiger Ausschluss Gegenseitiger Ausschluss: Überblick Gegenseitiger Ausschluss: Überblick Gegenseitiger Ausschluss: Überblick „ich will” Beispiel – Maekawa: Quorumbasierter gegenseitiger Ausschluss – Maekawa: Quorumbasierter gegenseitiger Ausschluss – Sanders: Universeller Algorithmus I Maekawa: erlaubnisbasierter Quorumbasierter gegenseitiger Ausschluss – Sanders: Universeller erlaubnisbasierter Algorithmus – Cao Algorithmen und Singhal: Optimierte Koordinierungsverzögerung I –Sanders: für Verteilte Systeme (AVS), WS 2005/06 erlaubnisbasierter Algorithmus Cao undUniverseller Singhal: Optimierte Koordinierungsverzögerung Lamport: Replikation Systemzustandes ok Ricart und Vollständige Agrawala: Reduktion derdes Nachrichtenzahl „ich will” Beispiel Jeder fragt––jeden ok „ich will” Jeder fragt jeden – Ricart und Agrawala: Reduktion der Nachrichtenzahl „ich will” – Carvalho und Roucairol: DynamischReplikation Optimierung des Systemzustandes I Lamport: Vollständige „ich will” „ich will” – Carvalho und Roucairol: Dynamisch „ichOptimierung will” I Ricart und Agrawala: Reduktion der Nachrichtenzahl – Lamport: Vollständige Replikation des Systemzustandes Algorithmen für Verteilte Systeme (AVS), WS 2005/06 Algorithmen für Verteilte Systeme (AVS), WS 2005/06 ok – Maekawa: Quorumbasierter gegenseitiger Ausschluss „ich will” ok Jeder fragt ausreichend viele – Maekawa: Quorumbasierter ok gegenseitiger Ausschluss Jeder fragt ausreichend viele – Sanders: Universeller erlaubnisbasierter Algorithmus ok – Sanders: Universeller erlaubnisbasierter Algorithmus „ich will” – Cao und Singhal: Optimierte Koordinierungsverzögerung „ich will” – Cao und Singhal: Optimierte Koordinierungsverzögerung Algorithmen für Verteilte Systeme (AVS), WS 2005/06 Algorithmen für Verteilte Systeme (AVS), WS 2005/06 Ausschluss.fm: 21.11.05 08:46 10 – 1 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm Quorumbasierte Algorithmen: Quorumbasierte Algorithmen: Quorumbasierte Algorithmen: „ich will” Gegenseitiger Überblick Dezentral, Ausschluss: aber „ich will” Gegenseitiger Ausschluss: Überblick I Dezentral, aber reduzierter Aufwand Dezentral,Aufwand aber reduzierter reduzierter Aufwand Quorumbasierte Algorithmen: I Jeder fragt ausreichend viele „ich will” „ich will” ok ■ Quorumbasierte Algorithmen: „ich will” ok Jeder fragt ausreichend viele ok „ich will” Jeder fragt ausreichend viele ok ok Dezentral, aber „ich will” Dezentral, aber „ich will” reduzierter Aufwand „ich will” reduzierter Aufwand ■ ok for Ausschluss.fm: 21.11.05 08:46 Gegenseitiger Ausschluss Gegenseitiger 10Ausschluss: Überblick Gegenseitiger Ausschluss: Überblick Gegenseitiger Ausschluss: Überblick Algorithmen für Verteilte Systeme (AVS), WS 2005/06 Algorithmen für Verteilte Systeme (AVS), WS 2005/06 ■ Ausschluss.fm: 21.11.05 08:46 Ausschluss.fm: 21.11.05 08:46 Ausschluss.fm: 21.11.05 08:46 Ausschluss.fm: 21.11.05 08:46 ■ Material zurmeisten Vorlesung – Ein guter Überblick über die wichtigen Forschungsarbeiten – M. Singhal, N.gesammeltes Shivaratri: Advanced Operating Forschungsarbeiten aufConcepts diesem in Gebiet liefert insbesondere: M. Singhal, N. Shivaratri: Advanced Operating auf diesem liefert G. Cao,inForschungsarbeiten M. Singhal: Systems –– Ein guter Gebiet Überblick überinsbesondere: die meistenConcepts wichtigen G. Cao, M. Singhal: Systems A Delay-Optimal Quorum-Based Mutual Exclusion Algorithm auf diesem Gebiet liefert insbesondere: G. Cao, M. Singhal:for – Original-Publikationen zu den einzelnen Algorithmen, siehe Delay-Optimal Quorum-Based Mutual Systems, IEEE TPDS 12, Dec. 2001Exclusion A Delay-Optimal Quorum-Based Mutual Exclusion Algorithm for –ADistributed Original-Publikationen zu den einzelnen Algorithmen, sieheAlgorithm gesammeltes Material zur Vorlesung Distributed Systems, IEEE TPDS 12, Dec. 2001 gesammeltes Material zur Vorlesung Distributed Systems, IEEE TPDS 12, Dec. 2001 – Ein guter Überblick über die meisten wichtigen Forschungsarbeiten – Gebiet Ein guter Überblick über die meisten Forschungsarbeiten1 Algorithmen für Verteilte Systeme (AVS), WS 2005/06 auf diesem liefert insbesondere: G. Cao, wichtigen M. Singhal: auf für diesem Gebiet liefert insbesondere: G. Cao, M. c Kapitza Verteilte Systeme (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Universität Ulm A Delay-Optimal Quorum-Based Mutual Exclusion Algorithm forSinghal: Algorithmen Verteilte Systeme (AVS), WSSysteme, 2005/06 1 A Delay-Optimal Quorum-Based Mutual Exclusion Algorithm for (C) 2005Systems, Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm Distributed IEEE TPDS 12, Dec. 2001 Distributed Systems, IEEE TPDS 12, Dec. 2001 10 – 3 Ausschluss.fm: 21.11.05 08:46 Literatur I Algorithmus von Singhal: Intelligenter” Broadcast ” Algorithmen für Verteilte Systeme (AVS), WS 2005/06 Algorithmen für Verteilte Systeme (AVS), WS 2005/06 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm c Kapitza Verteilte Systeme 4 10 – 4 4 Knoten) wickeln zeitlich sequentiell eine Folge von b 10 Gegenseitiger Ausschluss ein Prozess die Erlaubnis, den kritischen Abschnitt auszuführen. 10 Gegenseitiger Ausschluss GA2: Lebendigkeit (bzw. Verklemmungsfreiheit): Wenn sich kein Gegenseitiger Ausschluss: Überblick Prozess im k. A. befindet und mindestens ein Prozess diesen betreten möchte, erhält ein Prozess in endlicher Zeit die Formale Anforderungen Erlaubnis, den kritischen Abschnitt zu betreten. Gegenseitiger i Arten von Aktionen: Ausschluss: Überblick ktionen, die keinerlei Auswirkungen auf andere Systemmodell e haben, I Prozesse wickeln zeitlich sequentiell eine Folge von Aktionen ab GA1: Gegenseitiger Ausschluss: Zu keinem Zeitpunkt hat mehr als ein Prozess die Erlaubnis, den kritischen Abschnitt auszuführen. ■ Strengere Anforderung zum Senden von Nachrichten, I Es gibt drei Arten von Aktionen: zum Empfangen von Nachrichten. I lokale Aktionen (keinerlei Auswirkungen auf andere Prozesse) I Aktionen zum Senden von Nachrichten I Aktionen zum Empfangen von Nachrichten GA2: Lebendigkeit (bzw. Verklemmungsfreiheit): Wenn kein GA2’: Aushungerungsfreiheit: Ein Prozess, dersich den kritischen Prozess im k. A. befindet und mindestens ein Prozess diesen Abschnitt betreten möchte, erhält innerhalb endlicher Zeit die betreten möchte, erhält ein Prozess in endlicher Zeit die Erlaubnis dazu. Erlaubnis, den kritischen Abschnitt zu betreten. teme (AVS), WS 2005/06 5 auck, Abteilung Verteilte Systeme, Universität Ulm c Kapitza Verteilte Systeme Ausschluss.fm: 21.11.05 08:46 Strengere Anforderung GA2’: Aushungerungsfreiheit: Ein Prozess, der den kritischen Abschnitt betreten möchte, erhält innerhalb endlicher Zeit die Erlaubnis dazu. Algorithmen für Verteilte Systeme (AVS), WS 2005/06 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm c Kapitza 10 – 5 ger Ausschluss: Überblick Verteilte Systeme 10 – 6 Gegenseitiger Ausschluss: Überblick 10 Gegenseitiger Ausschluss 10 Gegenseitiger Ausschluss Gegenseitiger Ausschluss: Überblick liche Gesichtspunkte ■ Weitere wesentliche Gesichtspunkte I Fairness Gegenseitiger Ausschluss: Überblick Performanz Letztes Verlassen eines kritischen Abschnitts Die Zulassung erfolgtder in der Reihenfolge der Anforderungen. ssung erfolgt inI der Reihenfolge Anforderungen. Eine globale Ordnung nach physikalischer Zeit ist i. d. R. nicht bale Ordnung nach physikalischer Zeit ist i. d. R. nicht möglich. Üblich daher Reihenfolge“ gemäß Ordnung durch ” Üblich daher „Reihenfolge“ logische Uhren. gemäß Ordnung durch I Fairness impliziert Aushungerungsfreiheit Uhren Nächstmögliches Betreten eines kritischen Abschnitts I Anforderung des KA (aber nicht umgekehrt) I Zeit Koordinierungsverzögerung impliziert Aushungerungsfreiheit ht umgekehrt) I Fehlertoleranz anz 6 Betreten des KA Verlassen des KA Ausführungszeit des KA Erzeugte Netzlast (Nachrichtenanzahl) I Erzielte Performanz Netzlast (Nachrichtenanzahl) Zeit Antwortzeit rformanz c Kapitza Verteilte Systeme 11.05 08:46 Durchsatz: Anzahl KA pro Zeit; 1/(Koord.Verz.+Ausführungszeit) 10 – 7 c Kapitza Verteilte Systeme 10 – 8 Zentraler ZentralerKoordinator Koordinator Zentraler Koordinator ■ ■Nachrichtentypen: Nachrichtentypen: Zentraler Koordinator Zentraler Koordinator Zentraler Koordinator ■ ■Eigenschaften Eigenschaften ● ● REQUEST Anforderung des kritischen Abschnitts Nachrichtentypen REQUEST Anforderung des kritischen Abschnitts I REQUEST Anforderung des kritischen Abschnitts ● ● REPLY Zuteilung des kritischen Abschnitts REPLY Zuteilung des kritischen Abschnitts ● Anzahl derder Nachrichten: 3 pro kritischem Abschnitt Eigenschaften ● Anzahl Nachrichten: 3 pro kritischem Abschnitt I Anzahl●der Nachrichten: 3 pro kritischem Abschnitt Koordinierungsverzögerung: 2 Nachrichtenlaufzeiten ● Koordinierungsverzögerung: 2 Nachrichtenlaufzeiten I Koordinierungsverzögerung: (RELEASE, REPLY) 2 Nachrichtenlaufzeiten (RELEASE, REPLY) (RELEASE, REPLY) 10 Gegenseitiger Ausschluss Zuteilung des kritischen Abschnitts I REPLY I RELEASE Freigabe des kritischen Abschnitts ● ● RELEASE des kritischen Abschnitts RELEASEFreigabe Freigabe des kritischen Abschnitts st t ue ues q q e r re ly y reprepl Koord Koord P reply reply 2 . ...... . KNK K1K N Algorithmen für Verteilte Systeme (AVS), WS WS 2005/06 Algorithmen für Verteilte Systeme (AVS), 2005/06 9 9 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm c Kapitza Verteilte Systeme Ausschluss.fm: 21.11.05 08:46 K2K 1 request request P P reply reply 1 K2 K 2 . . .. .. . . KNK N Algorithmen für Verteilte Systeme (AVS), WS 2005/06 Algorithmen für Verteilte Systeme (AVS), WS 2005/06 10 10 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm c Kapitza 10 – 9 Algorithmus Algorithmusvon vonLamport Lamport Verteilte Systeme 10 – 10 Algorithmus von Lamport Algorithmus von Lamport 10 Gegenseitiger Ausschluss 10 Gegenseitiger Ausschluss Algorithmus von Lamport ■ ■Systemmodell Systemmodell Algorithmus von Lamport ● Bearbeitung von REQUEST-Nachrichten: ● Bearbeitung von REQUEST-Nachrichten: ● ● Nachrichtenkanäle: zuverlässig, FIFO Nachrichtenkanäle: zuverlässig, FIFO Systemmodell I Nachrichtenkanäle: ● ● Lamports logische Uhren zum Erzeugen von Zeitstempeln (t) (t) zuverlässig, FIFO Lamports logische Uhren zum Erzeugen von Zeitstempeln I Koord Koord se e ea as rel rele Ausschluss.fm: 21.11.05 08:46 Ausschluss.fm: 21.11.05 08:46 K1K st t ue ues q q e r re ly y reprepl request request P se e ea as rel rele Ausschluss.fm: 21.11.05 08:46 10 Gegenseitiger Ausschluss I – –Jeder Prozess sammelt beibei ihmihm angekommene REQUESTJeder Prozess sammelt angekommene REQUESTNachrichten und ordnet sie nach steigendem Zeitstempel in lokaler REQUEST-Warteschlange. lokaler REQUEST-Warteschlange. Jeder Prozess sammelt bei ihm angekommene eine REQUEST-Nachricht vonvon Pi erhält, sendet Pj eine – –Wenn P REQUEST-Nachrichten und ordnet sie nach steigendem j Pi Zeitstempel erhält, sendet Pj eine Wenn Pj eine REQUEST-Nachricht in lokaler REQUEST-Warteschlange. Bestätigungsnachricht ACK(t, j) an P . Bestätigungsnachricht ACK(t, j) ani P . BearbeitungNachrichten von REQUEST-Nachrichten: und ordnet sie nach steigendem Zeitstempel in I Lamports logische Uhren zum Erzeugen von Zeitstempeln (t) ■ ■Algorithmus Algorithmus i ● ● Eintrittswunsch des Knotens Pi:P : Algorithmus Eintrittswunsch des Knotens i I Eintrittswunsch sende REQUEST(t, alle (einschließlich sich selbst) des Knotensi)Pan sende REQUEST(t, i)i : an alle (einschließlich sich selbst) I sende REQUEST(t, i) an alle (einschließlich sich selbst) I sende RELEASE(t, i) an alle I Wenn Pj eine REQUEST-Nachricht von Pi erhält, sendet Pj eine Bestätigungsnachricht ACK(t, j) an Pi 11 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm c Kapitza Verteilte Systeme 10 – 11 11 Ausschluss.fm: 21.11.05 08:46 Algorithmen für Verteilte Systeme (AVS), WS 2005/06 Algorithmen für Verteilte Systeme (AVS), WS 2005/06 Ausschluss.fm: 21.11.05 08:46 Ausschluss.fm: 21.11.05 08:46 Ausschluss.fm: 21.11.05 08:46 ● ● Knoten Pi Pverlässt den kritischen Abschnitts: Knoten i verlässt den kritischen Abschnitts: I Knoten Pi verlässt den kritischen Abschnitts: sende RELEASE(t, i) an alle sende RELEASE(t, i) an alle Algorithmen für Verteilte Systeme (AVS), WS 2005/06 Algorithmen für Verteilte Systeme (AVS), WS 2005/06 12 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm c Kapitza Verteilte Systeme 10 – 12 12 10 Gegenseitiger Ausschluss 10 Gegenseitiger Ausschluss Algorithmus von Lamport I Algorithmus von Lamport I Betreten kritischer Abschnitte: Pi kann kritischen Abschnitt betreten, wenn diese beiden Bedingungen erfüllt sind: I Pi hat von allen anderen Knoten eine (beliebige) Nachricht mit größerem Zeitstempel als sein eigener REQUEST erhalten (FIFO-Kanal ⇒ keine Nachrichten mit älteren Zeitstempel unterwegs ⇒ es kann kein REQUEST mit kleinerem Zeitstempel mehr ankommen!) I Verlassen kritischer Abschnitte I Pi entfernt bei Verlassen seines k. A. die eigene Anforderung aus der lokalen Warteschlange und sendet eine RELEASE-Nachricht an alle Knoten I Wenn Pj eine RELEASE-Nachricht von Pi bekommt, entfernt es die zugehörige REQUEST-Nachricht aus seiner Warteschlange Der eigene REQUEST ist am Kopf der Warteschlange c Kapitza Verteilte Systeme c Kapitza 10 – 13 10 Gegenseitiger Ausschluss Verteilte Systeme 10 Gegenseitiger Ausschluss Algorithmus von Lamport Algorithmus von Ricart und Agrawala Bezeichnungen Systemmodell I T : mittlere Nachrichtenlaufzeit; I N: Anzahl der Knoten I E : mittlere Ausführungszeit für kritischen Abschnitt Eigenschaften des Algorithmus I Antwortzeit: 2T + E I Nachrichten: 3(N − 1) pro k. A. I Koordinierungsverzögerung: T 10 – 14 I Nachrichtenkanal: zuverlässig (FIFO-Eigenschaft nicht mehr notwendig!) I Reduktion der Nachrichtenanzahl durch Kombination von ACK und RELEASE zu einer REPLY-Nachricht Fehlertoleranz I Keine! (Sobald ein beliebiger Knoten ausfällt, kann kein Knoten mehr den kritischen Abschnitt betreten) c Kapitza Verteilte Systeme 10 – 15 c Kapitza Verteilte Systeme 10 – 16 10 Gegenseitiger Ausschluss 10 Gegenseitiger Ausschluss Beschreibung des Algorithmus I Eintrittswunsch des Knotens Pi : Beschreibung des Algorithmus I REQUEST(t, i) an alle Betreten kritischer Abschnitte I I Bearbeitung von REQUEST: I I Wenn Pj eine REQUEST-Nachricht von Pi erhält, sendet er eine REPLY-Nachricht an Pi , falls er I weder selbst seinen kritischen Abschnitt betreten will noch ihn gerade betreten hat, oder I er selbst eine Anforderung gestellt hat, aber der Zeitstempel von Pi ’s Anforderung kleiner ist als der seiner eigenen Anforderung. I Pi kann k. A. betreten, wenn er auf seine Anforderung von allen anderen eine REPLY-Nachricht erhalten hat. Verlassen des kritischen Abschnitts durch Pi I Pi versendet zu allen aufgeschobenen REQUESTs eine REPLY Nachricht. In allen anderen Fällen wird das Senden der REPLY-Nachricht aufgeschoben (Eintrag in Warteschlange!). c Kapitza Verteilte Systeme c Kapitza 10 – 17 10 Gegenseitiger Ausschluss Verteilte Systeme 10 Gegenseitiger Ausschluss Algorithmus von Ricart und Agrawala Optimierung von Carvalho und Roucairol Bezeichnungen Ausgangssituation I T mittlere Nachrichtenlaufzeit I E mittlere Ausführungszeit für k. A. I Antwortzeit: 2T + E I Nachrichten: 2(N − 1) pro k. A. I Koordinierungsverzögerung: T Bisheriger Algorithmus von Ricart und Agrawala; Pi hat von Pj ein REPLY erhalten; Optimierungsidee: Eigenschaften des Algorithmus I 10 – 18 I Implizites Weiterverwenden“ der durch das REPLY erteilten ” Erlaubnis für den k. A. I Weiterverwendung, solange Pj nicht selbst in den k. A. will (d.h. Pi hat seit dem REPLY von Pj keinen REQUEST empfangen und folglich keinen REPLY an Pj gesendet) Anzahl der Nachrichten pro k.A.: Variabel 0...2(N − 1) I c Kapitza Verteilte Systeme 10 – 19 Besonders effizient, wenn ein kleiner Teil der Knoten den k. A. mehrfach betreten will c Kapitza Verteilte Systeme 10 – 20 10 Gegenseitiger Ausschluss 10 Gegenseitiger Ausschluss Quorenbasierte verteilte Algorithmen Quorenbasierte verteilte Algorithmen Überlegung zur weiteren Reduktion der Nachrichtenzahl Allgemeine Definition von Quorensystem“: Quorenbasierte ”verteilte Algorithmen I Menge von Knotenmengen ( Quoren“), von denen sich je zwei in ” ■ mindestens Allgemeine einem Definition von „Quorensystem“: Element überschneiden Quorenbasierte verteilte Algorithmen I Alle bisher betrachteten verteilten Algorithmen benötigen im ■ Überlegung zurNachrichten weiteren Reduktion ungünstigesten Fall O(N) pro k. A.der Nachrichtenzahl I Quorenbasierte Algorithmen verfolgen dieNachrichten Idee, nur mit einer ungünstigesten Fall O(N) pro k. A. Teilmenge aller Knoten (einem Quorum) zu interagieren, um den ● Quorenbasierte Algorithmen verfolgen die Idee, nur mit einer kritischen Abschnitt betreten zu können ● Alle bisher betrachteten verteilten Algorithmen benötigen im ● ■ I Teilmenge aller Knoten (einem Quorum) zu interagieren, um den kritischen Abschnitt betreten zu können ● I I Quorum-Mengen sollen so gebildet werden, dass Beispiele ■ Beispiele der gegenseitige Ausschluss sichergestellt – der gegenseitige Ausschlussistsichergestellt ist der Kommunikationsaufwand möglichst weitmöglichst reduziertweit wird – der Kommunikationsaufwand reduziert wird eine möglichst– gleichmäßige der Verteilung Last erreicht wirderreicht wird eine möglichstVerteilung gleichmäßige der Last Ausschluss.fm: 21.11.05 08:46 I Algorithmen für Verteilte Systeme (AVS), WS 2005/06 c Kapitza Verteilte Systeme 10 – 21 21 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm Algorithmen für Verteilte Systeme (AVS), WS 2005/06 c Kapitza Quorenbasierte verteilte Algorithmen Nicht alle Quoremsysteme sind „gleich gut” ■ mehr häufiger Schaden in anrichten falls manche Knoten Quoren verwendet als andere bei Fehlertoleranz-Anwendungen: Ausfall mancher Knoten kann ■ Von Interesse sind daher vor allem Quoren mit bestimmten mehr Schaden anrichten Minimalitätseigenschaften Ein ●ideales Quorensystem (alle Quoren gleich „symmetric coterie”: alle Quoren sindsind gleich groß groß sind, und jeder überschneiden sich oft in in nur einemvorkommt Element) existiert nur, wenn sich Knoten gleich Quoren die Knotenanzahl N darstellen lässt in der Form ● „non-dominated coterie”: Minimaler Quorengröße bei m (p m + 1) + 1, N = pmaximaler wobeiin pfolgenden eine Primzahl Quorenzahl Sinne: ist. I – Entfernen bel. Elements 1+ Beispiel: N = 13 eines = 31 (3 1) + 1aus einem Quorum verletzt die Überschneidungsbedingung überschneiden sich in nur einem Element Algorithmen für Verteilte Systeme (AVS), WS 2005/06 23 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm 10 – 23 Ausschluss.fm: 21.11.05 08:46 Ausschluss.fm: 21.11.05 08:46 für alle r, s In anderen –Fällen müssen dieQuorums angegebenen Bedingungen etwas Hinzufügen eines verletzt coterie-Eigenschaft gelockert●werden. Ideale „coterie”: Alle Knoten sind beteiligt; je zwei Quoren Von Interesse sind daher vor allem Quoren mit bestimmten Minimalitätseigenschaften! Verteilte Systeme Qr ⊄ Qs I – falls manche Knoten häufiger in Quoren verwendet als andere c Kapitza Spezialfälle für Quoren Satz (hier nicht bewiesen) ● „coterie”: Quorensystem mit Ungleiche Lastverteiltung – bei Fehlertoleranz-Anwendungen: Ausfall mancher Knoten kann I 10 – 22 10 Gegenseitiger Ausschluss Nicht alle Quoremsysteme sind gleich gut” ● Evtl. unnötiger ” Aufwand, wenn sich zwei Quoren in mehreren Knoten überschneiden I Evtl. unnötiger Aufwand, wenn sich zwei Quoren in mehreren ● Ungleiche Lastverteiltung Knoten überschneiden I 22 Quorenbasierte verteilte Algorithmen Quorenbasierte verteilte Algorithmen ■ Verteilte Systeme (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm 10 Gegenseitiger Ausschluss Quorenbasierte verteilte Algorithmen I Vielfältige Anwendungsgebiete in verteilten Systemen Gegenseitiger Ausschluss, fehlertolerante Einigungsund Commit-Protokolle, gemeinsame verteilte Variablen,... ● Gegenseitiger Ausschluss, fehlertolerante Einigungs- und Commit-Protokolle, gemeinsame verteilte Variablen,... Quorum-Mengen sollen so gebildet werden, dass Ausschluss.fm: 21.11.05 08:46 I Menge von Knotenmengen („Quoren“), von denen sich je in mindestens einem Element überschneiden Vielfältige zwei Anwendungsgebiete in verteilten Systemen Algorithmen für Verteilte Systeme (AVS), WS 2005/06 24 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm c Kapitza Verteilte Systeme 10 – 24 10 Gegenseitiger Ausschluss 10 Gegenseitiger Ausschluss Quorenbasierte verteilte Algorithmen Quorenbasierte verteilte Algorithmen Quorenbasierte verteilte Algorithmen Einfache Quorensysteme Q Quadratgitterkonstruktion von Quoren ■ Quadratgitterkonstruktion von Quoren I ■ I {{A}}: Ein zentraler Koordinator I {{K1 , K2 , ..., Kn }}: Alle Knoten ● Eintragen der Knoten-IDs einElemente Quadratgitter I Quorum:in Alle in selber Zeile oder Spalte wie Knoten I Mehrheitsquoren: Alle Mengen von Knoten mit mehr als der Hälfte der Knoten ● Quorum: Alle Elemente in selber Zeile oder Spalte wie I Die Quoren überschneiden sich i. d. R. in zwei Elementen Knoten selbst √ I Gewichtete Mehrheitsquoren: I I Eintragen der Knoten-IDs in ein Quadratgitter W selbst I Quorengröße ist 2d Ne–1 – Die Quoren überschneiden sich i. d. R. in zwei Elementen P Jeder Knoten Ki hat Gewicht Gi , Gges = i Gi Quoren sind alle Knotenmengen mit Gesamtgewicht > Gges /2 ● Quorengröße ist 2 N –1 1 2 3 4 5 6 7 8 9 10 11 12 Verteilte Systeme 10 Gegenseitiger Ausschluss Quorenbasierte verteilte Algorithmens Algorithmen für Verteilte Systeme (AVS), WS 2005/06 10 – 26 Al (C) Verteilter Algorithmus, der Quoren zur Reduktion des Kommunikationsaufwands verwendet Datenstrukturen eines Knoten Pi Auch Bäume sind geeignet um Quorensystem aufzubauen. Verteilte Systeme 27 10 Gegenseitiger Ausschluss Algorithmus von Maekawa Jedes Quorum besteht aus einer kompletten Reihe und aus je einem Knoten jeder darunter liegenden Reihe c Kapitza Verteilte Systeme (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm Crumbling Wall”-Quoren ” I Knoten sind in unterschiedlich große Reihen von Blöcken aufgeteilt I c Kapitza 10 – 25 Ausschluss.fm: 21.11.05 08:46 c Kapitza Ausschluss.fm: 21.11.05 08:46 13 14 15 16 10 – 27 I Anforderungsmenge: Menge von Knoten, von denen Pi eine Anforderung für den kritischen Abschnitt empfangen hat I Erlaubnismenge: Menge von Antworten auf eine eigene Anforderung für den kritischen Abschnitt I Belegungskennung: belegt für Pk , falls Pk von Pi die Erlaubnis für den kritischen Abschnitt erhalten hat I Logische Uhren nach Lamport werden verwendet, um eine totale Ordnung auf Anforderungen zu definieren c Kapitza Verteilte Systeme 10 – 28 10 Gegenseitiger Ausschluss 10 Gegenseitiger Ausschluss Algorithmus von Maekawa Algorithmus von Maekawa Grundidee des Algorithmus Grundidee des Algorithmus (2) I I I I frei: Zustand belegt für Pi “ ; Nachricht LOCKED an Pi ” belegt für r : Senden von LOCKED wird verzögert Pk empfängt LOCKED von Pi : I I Verteilte Systeme Erlaubnismenge leeren; Nachricht RELEASE an alle Quorumsmitglieder Knoten Pi empfängt von Pj die Nachricht RELEASE: I Pj aus Anforderungsmenge entfernen I Falls die Anforderungsmenge weitere Anforderungen enthält: Für älteste Anforderung von Pr aus der Anforderungsmenge: Zustand belegt für r “; Nachricht LOCKED an den Knoten Pr ” Pi in die Erlaubsnismenge aufnehmen Falls alle Quorumsmitglieder in der Erlaubnismenge sind, darf der kritische Abschnitt betreten werden c Kapitza Knoten Pj verlässt den kritischen Abschnitt: I Pj empfängt REQUEST(i, t): Pi in Anforderungsmenge aufnehmen und je nach Zustand von Pj : I I I Knoten Pi fordert kritischen Abschnitt an: REQUEST(i, t) an alle Knoten des Quorums von Pi c Kapitza 10 – 29 10 Gegenseitiger Ausschluss Algorithmus von Maekawa Algorithmus von Maekawa Bisher beschriebener Algorithmus gewährleistet den gegenseitigen Ausschluss ■ Beispiel-Ablauf für (1) (1) Beispiel-Ablauf fürVerklemmung Verklemmung L11 (a) 1 13 Es kann allerdings zu Verklemmungen kommen! L11 12 2 3 R L R L L11 11 4 R 10 5 9 c Kapitza Verteilte Systeme 10 – 31 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 ={ ={ ={ ={ ={ ={ ={ ={ ={ ={ ={ ={ ={ 1, 2, 2, 5, 3, 6, 4, 6, 1, 5, 2, 6, 2, 7, 1, 8, 3, 7, 3, 5, 1, 11, 4, 7, 4, 5, 3,4 } 8,11 } 8,13 } 10,11 } 6,7 } 9,12 } 10,13 } 9,10 } 9,11 } 10,12 } 12,13 } 8,12 } 9,13 } 6 8 hluss.fm: 21.11.05 08:46 I 10 – 30 10 Gegenseitiger Ausschluss Algorithmus von Maekawa I Verteilte Systeme 7 c Kapitza Algorithmen für Verteilte Systeme (AVS), WS 2005/06 Verteilte Systeme 10 – 32 33 10 Gegenseitiger Ausschluss 10 Gegenseitiger Ausschluss Algorithmus von Maekawa Algorithmus von Maekawa ■ Algorithmus von Algorithmus vonMaekawa Maekawa Beispiel-Ablauf für für Verklemmung (2) (2) Beispiel-Ablauf Verklemmung L11 (b) L7 1 2 13 L11 12 3 R R L L R L L11 11 ■ 4 R R L L7 10 5 R 9 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 ={ ={ ={ ={ ={ ={ ={ ={ ={ ={ ={ ={ ={ 1, 2, 2, 5, 3, 6, 4, 6, 1, 5, 2, 6, 2, 7, 1, 8, 3, 7, 3, 5, 1, 11, 4, 7, 4, 5, Beispiel-Ablauf für für Verklemmung Verklemmung (3) (3) Beispiel-Ablauf L11 9 10 – 33 34 Ausschluss.fm: 21.11.05 08:46 Verteilte Systeme 3,4 } 8,11 } 8,13 } 10,11 } 6,7 } 9,12 } 10,13 } 9,10 } 9,11 } 10,12 } 12,13 } 8,12 } 9,13 } 8 7 L8 L7 c Kapitza Verteilte Systeme Algorithmen für Verteilte Systeme (AVS), WS 2005/06 10 – 34 35 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm Erweiterungen zur Deadlock-Behandlung I Vollständiger Algorithmus trifft Maßnahmen zum Erkennung I Im Konfliktfall bekommt eine Anforderung mit kleinerem und Auflösen von Verklemmungen: I größerem Zeitstempel bereits die erforderliche Erlaubnis für dreierhalten weitere Nachrichten: A. hat) Iden Dazu k. FAILED: Zeigt an, dass Knoten derzeit für eine Anforderung mit kleinerem Nachrichten: Zeitstempel belegt ist weitere INQUIRE: Bittet um die Rückgabe einer Zuteilung (LOCKED) ● FAILED: Zeigt an, dass Knoten derzeit für eine Anforderung I RELINQUISH: Gibt Zuteilung zurück mit kleinerem Zeitstempel belegt ist ● INQUIRE: Bittet um die Rückgabe einer Zuteilung (LOCKED) ● RELINQUISH: Gibt Zuteilung zurück Verteilte Systeme Pj empfängt REQUEST(i, t) von Pi , hat Pi in die Anforderungsmenge aufgenommen, und ist belegt für Pr “: ” I Zeitstempel Vorrang (außer, wenn die Anforderung mit größerem ImZeitstempel Konfliktfallbereits bekommt eine Anforderung die erforderliche Erlaubnis mit für kleinerem den k. A. erhalten hat)vorrang (außer, wenn die Anforderung mit Zeitstempel c Kapitza 1, 2, 2, 5, 3, 6, 4, 6, 1, 5, 2, 6, 2, 7, 1, 8, 3, 7, 3, 5, 1, 11, 4, 7, 4, 5, 6 L R ={ ={ ={ ={ ={ ={ ={ ={ ={ ={ ={ ={ ={ Algorithmus von Maekawa Vollständiger Algorithmus trifft Maßnahmen zum Erkennung und Auflösen von Verklemmungen: I 5 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 10 Gegenseitiger Ausschluss Algorithmus von Maekawa Dazu drei L R R Algorithmus von Maekawa ■ 4 L7 10 10 Gegenseitiger Ausschluss I 3 R L L R (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm ● L R R L8 Algorithmen für Verteilte Systeme (AVS), WS 2005/06 2 R L11 11 L7 ■ 12 R L 7 c Kapitza L7 1 13 6 8 L8 L11 (c) 3,4 } 8,11 } 8,13 } 10,11 } 6,7 } 9,12 } 10,13 } 9,10 } 9,11 } 10,12 } 12,13 } 8,12 } 9,13 } 10 – 35 I Falls Pi ältestes Element in der Anforderungsmenge: Pj sendet INQUIRE an Pr Falls nicht: Pj sendet FAILED an Pi Pr empfängt INQUIRE von Pj : I Falls Pr bereits FAILED empfangen hat: RELINQUISH an Pj , Pj aus Erlaubnismenge entfernen I Ansonsten: Empfang von INQUIRE merken (bei nachfolgenden Empfang von FAILED muss das Senden von RELINQUISH nachgeholt werden) c Kapitza Verteilte Systeme 10 – 36 Algorithmus von Maekawa 10 Gegenseitiger Ausschluss ■ 10 Gegenseitiger Ausschluss Algorithmus von Maekawa Algorithmus von Maekawa Algorithmus von Maekawa Erweiterungen zur Deadlock-Behandlung Erweiterungen zur Deadlock-Behandlung ■ Wenn Pj die Nachricht RELINQUISH von Pi empfängt: I Wenn Pj die Nachricht RELINQUISH von Pi empfängt: Belegung für Pi aufheben; Belegung für Pi aufheben; für ältestes Element Pr in der für ältestes Element Pr in der Anforderungsmenge Anforderungsmenge belegt für Pr “ vermerken und LOCKED an ” „belegt für P “ vermerken und LOCKED an Pr senden r P senden ● Beispiel-Ablauf (4) Beispiel-Ablauf L11 Wenn Pi von Pj FAILED empfängt: I 12 R L 9 10 – 37 R L8 12 2 R L11 11 3 R L L R L 4 R R L L7 10 R 9 L8 L R 5 R F 6 8 7 L8 L7 c Kapitza Algorithmen für Verteilte Systeme (AVS), WS 2005/06 Verteilte Systeme 10 – 38 39 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 ={ ={ ={ ={ ={ ={ ={ ={ ={ ={ ={ ={ ={ 1, 2, 2, 5, 3, 6, 4, 6, 1, 5, 2, 6, 2, 7, 1, 8, 3, 7, 3, 5, 1, 11, 4, 7, 4, 5, Beispiel-Ablauf (6) Beispiel-Ablauf L7 1 13 3,4 } 8,11 } 8,13 } 10,11 } 6,7 } 9,12 } 10,13 } 9,10 } 9,11 } 10,12 } 12,13 } 8,12 } 9,13 } L11 Quorum von Pi ist Si: 2 L R 12 R L R L R F L11 11 3 R L I 4 R L L7 10 R 9 L8 Verteilte Systeme L8 L11 (e) Quorum von Pi ist Si: R L 3,4 } 8,11 } 8,13 } 10,11 } 6,7 } 9,12 } 10,13 } 9,10 } 9,11 } 10,12 } 12,13 } 8,12 } 9,13 } Algorithmus von Maekawa Algorithmus von Maekawa 10 – 39 40 hluss.fm: 21.11.05 08:46 L11 L7 1, 2, 2, 5, 3, 6, 4, 6, 1, 5, 2, 6, 2, 7, 1, 8, 3, 7, 3, 5, 1, 11, 4, 7, 4, 5, 10 Gegenseitiger Ausschluss L7 13 L8 ={ ={ ={ ={ ={ ={ ={ ={ ={ ={ ={ ={ ={ (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm ■ 1 7 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 Algorithmen für Verteilte Systeme (AVS), WS 2005/06 Beispiel-Ablauf Beispiel-Ablauf (5) L11 8 c Kapitza Algorithmus von Maekawa Algorithmus von Maekawa (d) 6 L 10 Gegenseitiger Ausschluss ■ 5 R R Ausschluss.fm: 21.11.05 08:46 Verteilte Systeme 4 R L8 c Kapitza R L L L7 10 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm 3 R L11 11 – Ansonsten: Empfang FAILEDmerken merken (bei nachfolgenden I Ansonsten: Empfang von von FAILED Empfang von INQUIRE mussvon dasINQUIRE Sendenmuss vondas RELINQUISH (bei nachfolgenden Empfang Senden von RELINQUISH nachgeholt werden) nachgeholt werden) 38 Quorum von Pi ist Si: 2 R L R L Wenn Pi von Pj FAILED empfängt: – Falls P bereits INQUIRE von einem Knoten Pk empfangen hat: I Fallsi Pi bereits INQUIRE von einem Knoten Pk empfangen hat: RELINQUISH Pkk aus Erlaubnismenge entfernen RELINQUISH an an P Pkk,, P aus Erlaubnismenge entfernen Algorithmen für Verteilte Systeme (AVS), WS 2005/06 L7 1 13 r ● L8 L11 (c) L R 5 R F 6 8 7 L8 L7 c Kapitza Algorithmen für Verteilte Systeme (AVS), WS 2005/06 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 Verteilte Systeme ={ ={ ={ ={ ={ ={ ={ ={ ={ ={ ={ ={ ={ 1, 2, 2, 5, 3, 6, 4, 6, 1, 5, 2, 6, 2, 7, 1, 8, 3, 7, 3, 5, 1, 11, 4, 7, 4, 5, 3,4 } 8,11 } 8,13 } 10,11 } 6,7 } 9,12 } 10,13 } 9,10 } 9,11 } 10,12 } 12,13 } 8,12 } 9,13 } 10 – 40 41 10 Gegenseitiger Ausschluss ■ 10 Gegenseitiger Ausschluss Algorithmus von Maekawa Algorithmus von Maekawa Algorithmus von Maekawa Beispiel-Ablauf (7) Beispiel-Ablauf Bezeichnungen: L11 L8 (f) 1 13 L11 L7 Quorum von Pi ist Si: 2 L 12 3 L L L11 11 Q I 4 L7 10 5 9 L8 6 8 7 L8 L7 c Kapitza S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 ={ ={ ={ ={ ={ ={ ={ ={ ={ ={ ={ ={ ={ 1, 2, 2, 5, 3, 6, 4, 6, 1, 5, 2, 6, 2, 7, 1, 8, 3, 7, 3, 5, 1, 11, 4, 7, 4, 5, 3,4 } 8,11 } 8,13 } 10,11 } 6,7 } 9,12 } 10,13 } 9,10 } 9,11 } 10,12 } 12,13 } 8,12 } 9,13 } Verteilte Systeme Algorithmen für Verteilte Systeme (AVS), WS 2005/06 I T mittlere Nachrichtenlaufzeit I E mittlere Ausführungszeit für k. A. I K mittlere Größe eines Quorums Eigenschaften des Algorithmus: I Antwortzeit: 2T + E I Koordinierungsverzögerung: 2T I Nachrichten: I I I keine Konflikte: 3(K − 1) pro k.A. Konfliktfall, normal: 4(K − 1) pro k.A. (FAILED) ungünstigster Fall: 5(K − 1) pro k.A. (INQUIRE, RELINQ. ) √ ⇒ O( N) Nachrichten bei geeigneten Quoren c Kapitza 10 – 41 Verteilte Systeme 10 – 42 42 (C) 2005 Hans P. Reiser, Franz J. Hauck, Abteilung Verteilte Systeme, Universität Ulm 10 Gegenseitiger Ausschluss 10 Gegenseitiger Ausschluss Tokenbasierte Algorithmen Perpetuum Mobile Algorithmus von Cao und Singhal Prinzip ■ Vorgehen Ziel:I Im System existiert genau ein Token I ● Ein Prozess kann einen kritischen Abschnitt nur betreten, wenn Minimierung der Koordinierungsverzögerung in einem er über das Token verfügt quorumbasierten Algorithmus Algorithmen vom „Maekawa-Typ“ weisen normalerweise eine I Perpetuum Mobile” Koordinierungsverzögerung von mindestens zwei ” Nachrichtenlaufzeiten auf (RELEASE-Nachricht und Aktive Verfahren I LOCKED-Nachricht) Algorithmus von Suzuki/Kasami: Vollständige Suche im ganzen ● Idee:I Token wird automatisch auf (virtuellem) Ring weitergeschickt I Knoten, der k. A. betreten will, wartet einfach auf das Token Eigenschaften Passive Verfahren ■ I Netz Algorithmus von Raymonds: Gezielte Suche nach vordefinierter I (Fast) alle Knoten wollen (fast) immer in den k. A.: I I (Meist) nur 1 Nachricht zwischen allen k.A., nahezu optimal Ansonsten: I Durchschnittliche Wartezeit auf Token N/2 Nachrichtenlaufzeiten I Unbeschränkte Anzahl von Nachrichten, selbst wenn kein Knoten den k.A. betreten will Baumstruktur Der Knoten, der gerade den kritischen Abschnitt ausführt, I wird Algorithmus von Singhal: der Nachrichtenzahl angewiesen, nachReduktion Beendigung seines k. A.durch eine intelligente, selbstadaptierende Suche nach dem Token LOCKED-Nachricht direkt zum nächsten Prozess zu senden. ● c Kapitza Verteilte Systeme 10 – 43 c Kapitza Verteilte Systeme 10 – 44 10 Gegenseitiger Ausschluss 10 Gegenseitiger Ausschluss Aktive Tokenbasierte Algorithmen Algorithmus von Suzuki-Kasami Generelles Prinzip Datenstrukturen I Ein Prozess, der in seinen kritischen Abschnitt eintreten will, aber nicht über das Token verfügt, versendet REQUEST-Anforderungen. I Ein Prozess, der REQUEST-Anforderungen erhält, übergibt das Token, sobald es frei ist, an einen Anforderer. I Lokale Datenstruktur des Prozesses Pi int RN [ n ] // Sequenznummern , soweit bekannt I Datenstruktur des Tokens struct { int LN [ n ]; IntFifo queue ; } Probleme I Erzeugung genau eines Tokens I Bestimmung des Prozesses, der den Token erhält I Welche REQUEST-Anforderungen sind veraltet, welche aktuell? c Kapitza Verteilte Systeme LN[i] enthält die durch Pi ausgeführten REQUEST-Operation. c Kapitza 10 – 45 10 Gegenseitiger Ausschluss Verteilte Systeme 10 Gegenseitiger Ausschluss Algorithmus von Suzuki-Kasami Algorithmus von Suzuki-Kasami Anforderung des Tokens Ausführung eines kritischen Abschnitts I I Wenn Prozess Pi das Token benötigt, erhöht er seine Sequenznummer RN[i] und sendet eine Nachricht REQUEST(i,RN[i]) an alle anderen I Falls Pj über das Token verfügt und nicht im kritischen Abschnitt ist, sendet er es an Pi , wenn RN[i] == LN[i]+1 ist. Verteilte Systeme Prozess Pi führt den kritischen Abschnitt aus, sobald er über das Token verfügt Verlassen eines kritischen Abschnitts Wenn ein Prozess Pj eine Nachricht REQUEST(i,sn) empfängt, setzt er RN[i] = max(RN[i],sn). c Kapitza 10 – 46 10 – 47 I LN[i] := RN[i] I Jeder Prozess Pj , der nicht in queue vermerkt ist und für den gilt, dass RN[j] == LN[j] + 1 ist, wird an queue angefügt I Falls queue nicht leer ist, wird der erste Prozess aus queue entfernt und das Token an ihn verschickt c Kapitza Verteilte Systeme 10 – 48 fm: 21.11.05 08:46 10 Gegenseitiger Ausschluss 10 Gegenseitiger Ausschluss Algorithmus von Suzuki-Kasami Weitere tokenbasierte Algorithmen Bezeichnungen: Algorithmus von Raymond I T: mittlere Nachrichtenlaufzeit; N: Anzahl der Knoten I Ziel: Reduktion der Nachrichten-Anzahl I E: mittlere Ausführungszeit für kritischen Abschnitt I Idee: Anordnung der Prozesse als logischem Baum (eine solche Struktur kann z.B. durch einen Wahlalgorithmus automatisch gewonnen werden) Eigenschaften des Algorithmus I Antwortzeit: 2T + E I Nachrichten: N pro k. A. I Koordinierungsverzögerung: T Algorithmus von Singhal Fehlertoleranz I Knoten, die selber REQUESTS ausgesendet haben, oder die das Token besitzt, dürfen nicht ausfallen c Kapitza Verteilte Systeme 10 – 49 10 Gegenseitiger Ausschluss Gegenseitiger Ausschluss: Gegenseitiger Ausschluss Zusammenfassung Zusammenfassung ■ Bewertungskriterien fürverschiedenen die verschiedenen Bewertungskriterien für die Algorithmen Algorithmen I Nachrichtenkomplexität Last pro Knoten Koordinierungsverzögerung Fehlertoleranz c Kapitza Verteilte Systeme 10 – 51 I Ziel: Beibehaltung der guten Koordinierungsverzögerung von Suzuki-Kasami I Aber Reduktion der Nachrichtenzahl durch geschickte Vorhersage, welche Knoten das Token besitzen können c Kapitza Verteilte Systeme 10 – 50