2. Übersicht
Luhme X
1. Mutex-Algorithmus
2. Modellierung als Petrinetz
3. Überführung in TLA+-Formel
4. Neue Modellierung in TLA+
5. Model Checking
2
3. Mutex-Algorithmus
Szenario
Luhme X
§ „global mutual exclusion in networks“
§ als Baum organisiertes Netzwerk
Mutex-Algorithmus
§ globaler wechselseitiger Ausschluss Modellierung als
Petrinetz
§ Token T als Semaphor Überführung in
TLA+-Formel
Neue Modellierung
§ Tokenlines b in TLA+
Model Checking
Die Tokenlines bilden stets einen
gerichteten Baum mit dem Token- c a
Besitzer als Wurzel.
T
3
4. Mutex-Algorithmus
Ablauf
b
Luhme X
besitze
Token
Mutex-Algorithmus
Modellierung als
c a Petrinetz
T Überführung in
TLA+-Formel
Neue Modellierung
in TLA+
Model Checking
4
5. Mutex-Algorithmus
Ablauf
b
Luhme X
besitze
Token
Request!
Mutex-Algorithmus
Modellierung als
c a Petrinetz
T Überführung in
TLA+-Formel
Neue Modellierung
in TLA+
Model Checking
5
6. Mutex-Algorithmus
Ablauf leite Request
weiter
b
Luhme X
besitze
Token
Request!
Mutex-Algorithmus
Modellierung als
c a Petrinetz
T Überführung in
TLA+-Formel
Neue Modellierung
in TLA+
Model Checking
6
7. Mutex-Algorithmus
Ablauf besitze
Token
b
Luhme X
T gebe Token
an b
Request!
Mutex-Algorithmus
Modellierung als
c a Petrinetz
Überführung in
TLA+-Formel
Neue Modellierung
in TLA+
Model Checking
7
8. Mutex-Algorithmus
Ablauf gebe Token
an c
b
Luhme X
Request!
Mutex-Algorithmus
Modellierung als
c a Petrinetz
Überführung in
besitze T TLA+-Formel
Token Neue Modellierung
in TLA+
Model Checking
8
9. Mutex-Algorithmus
Ablauf
b
Luhme X
kritisch
Mutex-Algorithmus
Modellierung als
c a Petrinetz
Überführung in
TLA+-Formel
Neue Modellierung
in TLA+
Model Checking
9
10. Mutex-Algorithmus
Ablauf
b
Luhme X
besitze
Token Mutex-Algorithmus
Modellierung als
c a Petrinetz
Überführung in
T TLA+-Formel
Neue Modellierung
in TLA+
Model Checking
10
11. Modellierung als Petrinetz
Netz Σ
Luhme X
Mutex-Algorithmus
Modellierung als
Petrinetz
Überführung in
TLA+-Formel
Neue Modellierung
in TLA+
Model Checking
Anfangsmarkierung:
Menge aller Sites Token-Lines erster Token-Besitzer
11
12. Modellierung als Petrinetz
Netz Σ
Luhme X
Mutex-Algorithmus
Modellierung als
Petrinetz
Überführung in
TLA+-Formel
Neue Modellierung
in TLA+
Model Checking
x fragt für sich selbst nach
z fragt für x nach
z ist näher am Token-Besitzer als x 12
13. Modellierung als Petrinetz
Korrektheit
Luhme X
In Elements of Distributed Algorithms
wurde die Eigenschaft
Mutex-Algorithmus
Modellierung als
Petrinetz
Überführung in
TLA+-Formel
bewiesen. Neue Modellierung
in TLA+
Model Checking
„Jeder, der kritisch werden möchte, wird
auch irgendwann kritisch.“
13
14. Überführung in TLA+-Formel
Was ist TLA+?
Luhme X
+
TLA ist eine Kombination aus
§ der temporalen Logik TLA Mutex-Algorithmus
§ der klassischen Mengenlehre Modellierung als
Petrinetz
Überführung in
TLA+-Formel
Neue Modellierung
in TLA+
+
→ TLA ist eine Spezifikationssprache für
Model Checking
verteilte Systeme.
14
15. Überführung in TLA+-Formel
TLA – The Temporal Logic of Actions
Zustand
Luhme X
§ Abläufe
Mutex-Algorithmus
Modellierung als
Petrinetz
Überführung in
TLA+-Formel
Neue Modellierung
in TLA+
§ TLA-Formeln Model Checking
Zustandsprädikat
TLA-Aktionen
neuer Wert für x
15
16. Überführung in TLA+-Formel
TLA – The Temporal Logic of Actions
Luhme X
§ Stottern
Mutex-Algorithmus
Modellierung als
Petrinetz
Überführung in
§ Spezifikation TLA+-Formel
Neue Modellierung
in TLA+
Model Checking
Initialisierungs- Tupel aller Fairness-
bedingung Variablen annahmen
16
17. Überführung in TLA+-Formel
Idee
Luhme X
+
§ in TLA dürfen Variablen Mengen sein
§ Fairness und Progress von Aktionen Mutex-Algorithmus
kann ausgedrückt werden Modellierung als
Petrinetz
Überführung in
TLA+-Formel
Neue Modellierung
in TLA+
→ Idee: „kanonische“ Überführung des Model Checking
Petrinetzes in eine TLA+-Formel:
§ Plätze → Mengen
§ Transitionen → Aktionen
17
18. Überführung in TLA+-Formel
Variablen
Luhme X
Mutex-Algorithmus
Modellierung als
Petrinetz
Überführung in
TLA+-Formel
Neue Modellierung
in TLA+
Model Checking
18
19. Überführung in TLA+-Formel
Aktionen
Luhme X
Mutex-Algorithmus
Modellierung als
Petrinetz
Überführung in
TLA+-Formel
Neue Modellierung
in TLA+
Model Checking
19
20. Überführung in TLA+-Formel
Aktionen
Luhme X
Mutex-Algorithmus
Modellierung als
Petrinetz
Überführung in
TLA+-Formel
Neue Modellierung
in TLA+
Model Checking
20
21. Überführung in TLA+-Formel
Spezifikation
Luhme X
Mutex-Algorithmus
Modellierung als
Petrinetz
Überführung in
TLA+-Formel
Neue Modellierung
in TLA+
Model Checking
21
22. Neue Modellierung in TLA+
Ansatz
Luhme X
§ in der Petrinetz-Modellierung
unrealistisch/zu abstrakt:
Mutex-Algorithmus
§ pending als öffentlicher Nachrichtenplatz Modellierung als
Petrinetz
§ compass als globale Netzinfrastruktur Überführung in
TLA+-Formel
Neue Modellierung
§ Entnahme von compass-Kanten in TLA+
Model Checking
§ besser/realistischer:
§ agentenbasierte Sicht
§ Mailboxen
§ lokale Nachrichtenkanäle
22
23. Neue Modellierung in TLA+
Szenario
Luhme X
§ jede Site/Agent besitzt…
§ eine Mailbox für Anfragen
Mutex-Algorithmus
§ Nachrichtenkanäle zu seinen Nachbarn Modellierung als
Petrinetz
§ eine „Vater-Site“ oder das Token T Überführung in
TLA+-Formel
Neue Modellierung
§ einen Zustand (idle, requesting, critical) in TLA+
Model Checking
§ … und sieht
§ seine Nachbarn c
b
§ sonst nichts
23
24. Neue Modellierung in TLA+
Ablauf
father state mailbox
a a idle ; Luhme X
b a idle ;
c b idle ;
b
Mutex-Algorithmus
a Modellierung als
Petrinetz
Überführung in
TLA+-Formel
c a Neue Modellierung
in TLA+
T
b Model Checking
hier per Definition
deterministisch
24
25. Neue Modellierung in TLA+
Ablauf
father state mailbox
a a idle ; Luhme X
b a idle ;
c b request ;
b
Mutex-Algorithmus
a Modellierung als
Petrinetz
Überführung in
TLA+-Formel
c a Neue Modellierung
in TLA+
T
b Model Checking
25
26. Neue Modellierung in TLA+
Ablauf
father state mailbox
a a idle ; Luhme X
b a idle {c}
c b request ; c b
Mutex-Algorithmus
a Modellierung als
Petrinetz
Überführung in
TLA+-Formel
c a Neue Modellierung
in TLA+
T
b Model Checking
26
27. Neue Modellierung in TLA+
Ablauf
father state mailbox
a a idle {b} Luhme X
b a idle {c}
c b request ; c b
Mutex-Algorithmus
a Modellierung als
Petrinetz
Überführung in
TLA+-Formel
c b a Neue Modellierung
in TLA+
T
b Model Checking
27
28. Neue Modellierung in TLA+
Ablauf
father state mailbox
a b idle ; Luhme X
b b idle {c}
c b request ; c b
Mutex-Algorithmus
T Modellierung als
Petrinetz
Überführung in
TLA+-Formel
c a Neue Modellierung
in TLA+
b b Model Checking
28
29. Neue Modellierung in TLA+
Ablauf
father state mailbox
a b idle ; Luhme X
b c idle ;
c c request ;
b
Mutex-Algorithmus
c Modellierung als
Petrinetz
Überführung in
TLA+-Formel
c a Neue Modellierung
in TLA+
T Model Checking
b
29
30. Neue Modellierung in TLA+
Ablauf
father state mailbox
a b idle ; Luhme X
b c idle ;
c c critical ;
b
Mutex-Algorithmus
c Modellierung als
Petrinetz
Überführung in
TLA+-Formel
c a Neue Modellierung
in TLA+
T Model Checking
b
30
31. Neue Modellierung in TLA+
Ablauf
father state mailbox
a b idle ; Luhme X
b c idle ;
c c idle ;
b
Mutex-Algorithmus
c Modellierung als
Petrinetz
Überführung in
TLA+-Formel
c a Neue Modellierung
in TLA+
T Model Checking
b
31
32. Neue Modellierung in TLA+
Spezifikation
Luhme X
nur den Agenten
betreffend
Mutex-Algorithmus
Modellierung als
die Umwelt Petrinetz
betreffend Überführung in
TLA+-Formel
Neue Modellierung
in TLA+
Model Checking
32
33. Model Checking
Zustandsraum
Luhme X
die erwartete Zustandsraumexplosion:
§ Petrinetz-Modellierung (n Sites):
Mutex-Algorithmus
§ Modellierung als
Petrinetz
Überführung in
§ Agentenversion (n Agenten): TLA+-Formel
Neue Modellierung
in TLA+
§ Model Checking
→ zu viel für einen Model Checker?
33
34. Model Checking
Model Checker TLC
Luhme X
+
§ TLC akzeptiert eine Teilklasse von TLA
(hier keine Einschränkung)
Mutex-Algorithmus
§ explizites Model Checking für Modellierung als
Petrinetz
endliche Systeme Überführung in
TLA+-Formel
Neue Modellierung
§ kaum Reduktionstechniken (nur
in TLA+
Model Checking
Symmetrie – hier nicht anwendbar)
§ sehr große Schwächen, Lebendigkeit
zu beweisen
34
35. Model Checking
Ergebnisse
Luhme X
§ in keiner der Modellierung (Petrinetz,
Agenten) Ergebnisse für mehr als zwei
Sites Mutex-Algorithmus
Modellierung als
Petrinetz
§ Lebendigkeitsformeln wie z. B. Überführung in
TLA+-Formel
Neue Modellierung
in TLA+
Model Checking
ließen sich nicht mit TLC beweisen
§ bewiesen: Mutex, Typinvarianten
§ die Ergebnisse von TLC sind teilweise
recht eigenartig
35
36. Model Checking
Ergebnisse
Luhme X
Mutex-Algorithmus
Speicherüberlauf bei drei Sites: 4 GB RAM in 30 Minuten… Modellierung als
Petrinetz
Überführung in
TLA+-Formel
Neue Modellierung
in TLA+
Model Checking
Erfolgreiche Verifikation (bei vier Sites) jeder Lebendigkeitsformel der Form
36
37. Modellierung eines
verteilten Algorithmus
Luhme-Workshop 2004
Vielen Dank!
Niels Lohmann
nlohmann@informatik.hu-berlin.de
http://www.informatik.hu-berlin.de/~nlohmann/arbeit
14.10.2004