Prinzipien, Modelle & Algorithmen der Nebenl¨ aufigen Programmierung
Wintersemester 2020/21Konsensus und die Herlihy-Hierarchie
Prof. Dr. David Sabel
LFE Theoretische Informatik
Letzte ¨Anderung der Folien: 30. Dezember 2020
Ubersicht ¨
1
Einleitung
2
Motivationsbeispiel: Zwei Gener¨ ale-Problem
3
Das Konsensusproblem
4
Die Konsensus-Zahl
5
Universalit¨ at
TCS | 07 Konsensus und die Herlihy-Hierarchie| WS 2020/21 2/25 Einleitung Zwei Gener¨ale Konsensusproblem Konsensus-Zahl Universalit¨at
Fragestellung
Jede Menge Nebenl. Objekte: Atomares Register, RMW-Objekt, Test-and-set-Objekt, usw.
Welche Objekte sind
” besser“ als die anderen?
Was bedeutet
” besser“?
Intuitiv klar:
Atomares Register ist eher schwach (z.B. da Mutual-Exklusion schwer) RMW-Objekt ziemlich stark, kann viele andere Objekte implementieren
Herlihy’s Modell
Maurice Herlihy hat dies 1991 untersucht / formalisiert aber: Anderes Modell!
Modell: Prozesse k¨ onnen jederzeit abst¨ urzen
Modellierung: Prozess bleibt vor einem Kommando h¨ angen
Beachte: Alle gesehenen Mutual-Exklusion Algorithmen vertragen keine Abst¨ urze!
Ein Beispiel f¨ ur abst¨ urzende Prozesse
Das Zwei-Gener¨ ale-Problem (auch Coordinated-Attack)
Fakten:
Angriff nur erfolgreich, wenn beide Divisionen zeitgleich angreifen Kommunikation nur ¨ uber Boten
Boten m¨ ussen durch das Feindesland und kommen daher nicht immer an Problem: Wie sprechen sich die Gener¨ ale ab?
TCS |07 Konsensus und die Herlihy-Hierarchie |WS 2020/21 5/25 Einleitung Zwei Gener¨ale Konsensusproblem Konsensus-Zahl Universalit¨at
Zwei Gener¨ ale-Problem
Rechter General schickt Boten los: “Angriff um 12:00 mittags”
Rechter General kann nicht sicher sein, dass der Bote ankommt
⇒ wartet auf Best¨ atigung vom linken General
Linker General schickt Boten los: “Nachricht erhalten”
Linker General kann nicht sicher sein, dass der Bote ankommt
⇒ wartet auf Best¨ atigung vom rechten General
Rechter General schickt Boten los: “Nachricht erhalten”
usw.
Tats¨ achlich: Problem ist unl¨ osbar in diesem Modell!
TCS | 07 Konsensus und die Herlihy-Hierarchie| WS 2020/21 6/25 Einleitung Zwei Gener¨ale Konsensusproblem Konsensus-Zahl Universalit¨at
Das Konsensusproblem
n Prozesse, die auch abst¨ urzen k¨ onnen
Prozess i erh¨ alt einen Eingabewert x
i∈ {0, 1}
Programmiere die Prozesse, so dass
alle (nicht-abst¨ urzenden) Prozesse sich f¨ ur einen gemeinsamen Entscheidungswert d ∈ {0, 1}
entscheiden
x
1. . . x
nP
1. . . P
nd
Ubereinstimmung: Alle nicht-abgest¨ ¨ urzten Prozesse entscheiden sich f¨ ur den gleichen Wert d.
G¨ ultigkeit: d ∈ {x
1, . . . , x
n}, d.h. d ist einer der Eingabewerte.
Beachte: ¨ Ubereinstimmung ⇒ Algorithmus ist wait-frei:
Das Konsensusproblem (2)
Bei nicht-abst¨ urzenden Prozessen w¨ are das Problem einfach:
Alle Prozesse teilen sich (¨ uber gemeinsamen Speicher) untereinander alle ihre Eingabewerte mit
anschließend berechnet jeder Prozess d = f (x
1, . . . , x
n) = d
wobei f eine feste Funktion ist, die alle Prozesse kennen, z.B. f (x
1, . . . , x
n) = x
1.
L¨ osung mit dreiwertigem RMW-Objekt
Objekte und Initialisierung:
x: RMW-Objekt mit den m¨ oglichen Werten ⊥, 0, 1, initial ⊥ x
i: Eingabewert von Prozess i
d
i: Entscheidungswert, den Prozess i trifft.
Programm des i. Prozesses
(1) d
i:= read-modify-write(x,f
i);
(2) if d
i= ⊥ then d
i:= x
i;
Funktion f
ides i. Prozesses function f
i(v)
if v=⊥ then return x
ielse return v end function
} erster Prozess setzt sein xials neuen Wert, alle anderen nicht-abst¨ urzenden Prozesse lesen diesen Wert
⇒ alle d
i-Werte identisch
TCS |07 Konsensus und die Herlihy-Hierarchie |WS 2020/21 9/25 Einleitung Zwei Gener¨ale Konsensusproblem Konsensus-Zahl Universalit¨at
L¨ osung des Konsensusproblem
Mit dreiwertigem RMW-Objekt:
Der Algorithmus ist eine wait-freie L¨ osung f¨ ur beliebig viele Prozesse
Resultat f¨ ur atomare Register mit read und write : Selbst f¨ ur 2 Prozesse und nur einen Absturz nicht l¨ osbar:
Theorem
Es gibt keinen Konsensus-Algorithmus f¨ ur atomares read und write, der einen Absturz tolerieren kann.
Folgerung: Atomare Register k¨ onnen kein RMW-Objekt simulieren
TCS | 07 Konsensus und die Herlihy-Hierarchie| WS 2020/21 10/25 Einleitung Zwei Gener¨ale Konsensusproblem Konsensus-Zahl Universalit¨at
Beweisskizze
Statt direkt mit Abst¨ urzen zu argumentieren zeigen wir:
Ein wait-freier Konsensusalgorithmus f¨ ur atomare Register und 2 Prozesse existiert nicht
Algorithmen, die Abst¨ urze tolerieren m¨ ussen wait-frei sein, denn:
nicht wait-frei
= ⇒ Prozess wartet auf Bedingung, die ein anderer Prozess wahr macht
= ⇒ Endlosschleife, wenn anderer Prozess abst¨ urzt
= ⇒ Absturz nicht tolerierbar
Beweisskizze (2)
Wir verwenden Berechnungsb¨ aume, um die Ausf¨ uhrung zweier Prozesse P
1und P
2zu betrachten
Berechnungsbaum:
Knoten: Zust¨ ande der Prozesse und des Speichers
Kanten: Wesentliche Schritte, d.h. Lese- oder Schreiboperation auf dem gemeinsamen Speicher (interne Schritte sind zusammengefasst) Kante nach links = Schritt von P
1Kante nach rechts = Schritt von P
2. . .
Beweisskizze (3)
Berechnungsbaum:
. . .
Bl¨ atter sind mit Entscheidungswert ∈ {0, 1} markiert.
Innere Knoten mit den noch m¨ oglichen Entscheidungswerten.
Bivalenter Knoten: Markierung 0 und 1
Univalenter Knoten: Markierung 0 (0-valent) oder Markierung 1 (1-valent) Da Algorithmus wait-frei, ist der Baum endlich!
TCS |07 Konsensus und die Herlihy-Hierarchie |WS 2020/21 13/25 Einleitung Zwei Gener¨ale Konsensusproblem Konsensus-Zahl Universalit¨at
Beweisskizze (4)
Aussage:
Jeder 2-Prozess-Konsensusalgorithmus hat einen bivalenten Anfangszustand.
Beweis:
Nehme an P
1hat Eingabewert x
1= 0 und P
2hat Eingabewert x
2= 1.
Wenn nur P
1Schritte macht (linkester Pfad im Baum), dann muss P
1als Entscheidungswwert 0 berechnen
Wenn nur P
2Schritte macht, dann muss als Entscheidungswert 1 berechnet werden.
TCS | 07 Konsensus und die Herlihy-Hierarchie| WS 2020/21 14/25 Einleitung Zwei Gener¨ale Konsensusproblem Konsensus-Zahl Universalit¨at
Beweisskizze (5)
Ein Knoten ist kritisch, wenn er bivalent ist und jeder Nachfolger ist univalent.
Aussage:
Jeder Berechnungsbaum mit bivalenten Anfangszustand zu einem Konsensusalgorithmus hat einen kritischen Knoten.
Beweis:
Angenommen das gilt nicht.
Starte mit einem bivalenten Anfangszustand.
Solange es Schritte gibt, die zu einem bivalenten Zustand f¨ uhren, f¨ uhre diese Schritte aus.
Wenn das unendlich lange m¨ oglich ist, dann ist der Algorithmus nicht wait-frei.
Beweisskizze (6)
Sei nun ein Konsensusalgorithmus f¨ ur 2 Prozesse gegeben.
Gehe zu einem kritischem bivalenten Zustand z
O.b.d.A. linkes Kind ist 0-valent, rechtes Kind ist 1-valent
Untersuche alle F¨ alle.
Beweisskizze (7)
z 0,1 z
10
z
20z
21
1
1
P
1liest r
1P
2macht Schritt e
P
2macht Schritt e nur P
2macht Schritte nur P
2macht
Schritte
TCS |07 Konsensus und die Herlihy-Hierarchie |WS 2020/21 17/25 Einleitung Zwei Gener¨ale Konsensusproblem Konsensus-Zahl Universalit¨at
Beweisskizze (8)
z 0,1 z
10
z
10z
21
0
0
P
1macht Schritt e P
2liest r
1P
1macht Schritt e nur P
1macht
Schritte
nur P
1macht Schritte
TCS | 07 Konsensus und die Herlihy-Hierarchie| WS 2020/21 18/25 Einleitung Zwei Gener¨ale Konsensusproblem Konsensus-Zahl Universalit¨at
Beweisskizze (9)
z 0,1 z
10
z
00,1?
z
21 P
1schreibt r
1P
2schreibt r
2P
2schreibt r
2P
1schreibt r
1Beweisskizze (10)
z 0,1 z
10
z
02z
21
1
1
P
1schreibt r P
2schreibt r
P
2schreibt r nur P
2macht
Schritte nur P
2macht
Schritte
Die Konsensus-Zahl
Definition
F¨ ur ein nebenl¨ aufiges Objekt vom Typ o ist die Konsensus-Zahl CN (o) die gr¨ oßte Zahl an Prozessen n f¨ ur die man das Konsensus-Problem f¨ ur n Prozesse l¨ osen kann, indem man beliebig viele Objekte vom Typ o und beliebig viele atomare Register (mit read und write) verwendet.
Ist die Anzahl unbeschr¨ ankt, so sei CN (o) = ∞.
TCS |07 Konsensus und die Herlihy-Hierarchie |WS 2020/21 21/25 Einleitung Zwei Gener¨ale Konsensusproblem Konsensus-Zahl Universalit¨at
Konsensus-Hierarchie
CN (o) Objekt o
1 atomares Register mit read und write
2 test-and-set-Objekt, fetch-and-increment-Objekt, fetch-and-add- Objekt, swap-Objekt, read-modify-write-Bit
Θ( √
m) swap
m-Objekt
2m − 2 m-Register mit m-facher Zuweisung (m > 1)
∞ (drei-wertiges) RMW-Objekt, Compare-and-swap-Objekt, Sticky-Bit
TCS | 07 Konsensus und die Herlihy-Hierarchie| WS 2020/21 22/25 Einleitung Zwei Gener¨ale Konsensusproblem Konsensus-Zahl Universalit¨at
Eigenschaften der Konsensus-Hierarchie
Theorem
Wenn o
1und o
2zwei Objekte sind mit CN (o
1) < CN (o
2), dann gilt f¨ ur ein System mit CN (o
2) Prozessen:
Es gibt keine wait-freie Implementierung von Objekt o
2ausschließlich mit Objekten vom Typ o
1und atomaren Registern.
Es gibt eine wait-freie Implementierung von Objekt o
1ausschließlich mit Objekten vom Typ o
2und atomaren Registern.
F¨ ur Teil 1: G¨ abe es eine Implementierung von o
2-Objekten mit o
1-Objekten, k¨ onnte man damit auch das Konsensusproblem f¨ ur CN (o
2) Prozesse l¨ osen. Dann gilt CN (o
1) ≥ CN (o
2). Widerspruch!
F¨ ur Teil 2: Die Aussage folgt aus dem n¨ achsten Theorem (n¨ achste Folie), welches
Universalit¨ at
Theorem
Ein Objekt o mit CN (o) ≥ n ist universell in einem System mit n Prozessen. D.h. jedes wait-freie Objekt (mit einer sequentiellen Beschreibung) kann durch Objekte vom Typ o und atomaren Registern in einem System mit n Prozessen implementiert werden.
Bemerkungen:
Wir verzichten auf den genauen Beweis (dieser ist in der Literatur zu finden).
Wesentliche Ideen des Beweises:
Jeder Prozess speichert die Zugriffe auf die Objekte und rechnet die Nachfolgezust¨ ande der Objekte solange aus bis sein Zugriff stattfindet.
Ausrechnen ist aufgrund der sequentiellen Beschreibung kein echtes Problem.
Die H¨ urden sind:
Universalit¨ at (2)
Konsequenzen des Theorems:
Universelle Objekte k¨ onnen viele andere Objekte implementieren (unabh¨ angig vom Konsensus-Problem)
Objekte mit Konsensus-Zahl ≥ n “reichen aus”.
TCS |07 Konsensus und die Herlihy-Hierarchie |WS 2020/21 25/25 Einleitung Zwei Gener¨ale Konsensusproblem Konsensus-Zahl Universalit¨at