Verteilte Systeme

Werbung
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
Herunterladen