Modellierung eines verteilten Algorithmus

37
14.10.2004 Modellierung eines verteilten Algorithmus Luhme X Niels Lohmann [email protected] http://www.informatik.hu-berlin.de/~nlohmann/arbeit

description

Workshop presentation given by Niels Lohmann on October 14, 2004 in Groß Köris, Germany at Luhme X.

Transcript of Modellierung eines verteilten Algorithmus

Page 1: Modellierung eines verteilten Algorithmus

14.10.2004

Modellierung einesverteilten Algorithmus

Luhme X

Niels Lohmann

[email protected]://www.informatik.hu-berlin.de/~nlohmann/arbeit

Page 2: Modellierung eines verteilten Algorithmus

Luhme X

2

Übersicht

1. Mutex-Algorithmus

2. Modellierung als Petrinetz

3. Überführung in TLA+-Formel

4. Neue Modellierung in TLA+

5. Model Checking

Page 3: Modellierung eines verteilten Algorithmus

Luhme X

3

Mutex-Algorithmus

§ „global mutual exclusion in networks“§ als Baum organisiertes Netzwerk§ globaler wechselseitiger Ausschluss§ Token als Semaphor§ Tokenlines

Szenario

c a

b

T

T

Die Tokenlines bilden stets einen gerichteten Baum mit dem Token-Besitzer als Wurzel.

Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

Page 4: Modellierung eines verteilten Algorithmus

Luhme X

4

Mutex-Algorithmus

c a

bbesitze Token

T

Ablauf

Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

Page 5: Modellierung eines verteilten Algorithmus

Luhme X

5

Mutex-Algorithmus

c a

b

Request!

besitze Token

T

Ablauf

Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

Page 6: Modellierung eines verteilten Algorithmus

Luhme X

6

Mutex-Algorithmus

c a

b

Request!

besitze Token

leite Requestweiter

T

Ablauf

Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

Page 7: Modellierung eines verteilten Algorithmus

Luhme X

7

Mutex-Algorithmus

c a

bT

besitze Token

gebe Tokenan b

Request!

Ablauf

Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

Page 8: Modellierung eines verteilten Algorithmus

Luhme X

8

Mutex-Algorithmus

c a

b

cT

Request!

besitze Token

gebe Tokenan c

Ablauf

Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

Page 9: Modellierung eines verteilten Algorithmus

Luhme X

9

Mutex-Algorithmus

a

b

Ablauf

cc

kritischMutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

Page 10: Modellierung eines verteilten Algorithmus

Luhme X

10

Mutex-Algorithmus

a

b

Ablauf

cT

Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

besitzeToken

Page 11: Modellierung eines verteilten Algorithmus

Luhme X

11

Modellierung als Petrinetz

Menge aller Sites Token-Lines erster Token-Besitzer

Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

Netz Σ

Anfangsmarkierung:

Page 12: Modellierung eines verteilten Algorithmus

Luhme X

12

Modellierung als Petrinetz

x fragt für sich selbst nach

z fragt für x nach

z ist näher am Token-Besitzer als x

Netz Σ

Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

Page 13: Modellierung eines verteilten Algorithmus

Luhme X

13

Modellierung als Petrinetz

In Elements of Distributed Algorithmswurde die Eigenschaft

bewiesen.

„Jeder, der kritisch werden möchte, wird auch irgendwann kritisch.“

Korrektheit

Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

Page 14: Modellierung eines verteilten Algorithmus

Luhme X

14

Überführung in TLA+-Formel

TLA+ ist eine Kombination aus§ der temporalen Logik TLA

§ der klassischen Mengenlehre

→ TLA+ ist eine Spezifikationssprache für verteilte Systeme.

Was ist TLA+?

Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

Page 15: Modellierung eines verteilten Algorithmus

Luhme X

15

Überführung in TLA+-Formel

§ Abläufe

§ TLA-Formeln

TLA – The Temporal Logic of Actions

Zustandsprädikat

TLA-Aktionen

neuer Wert für x

Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

Zustand

Page 16: Modellierung eines verteilten Algorithmus

Luhme X

16

Überführung in TLA+-Formel

§ Stottern

§ Spezifikation

TLA – The Temporal Logic of Actions

Initialisierungs-bedingung

Fairness-annahmen

Tupel allerVariablen

Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

Page 17: Modellierung eines verteilten Algorithmus

Luhme X

17

Überführung in TLA+-Formel

§ in TLA+ dürfen Variablen Mengen sein§ Fairness und Progress von Aktionen

kann ausgedrückt werden

→ Idee: „kanonische“ Überführung des Petrinetzes in eine TLA+-Formel:

§ Plätze → Mengen§ Transitionen → Aktionen

Idee

Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

Page 18: Modellierung eines verteilten Algorithmus

Luhme X

18

Überführung in TLA+-Formel

Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

Variablen

Page 19: Modellierung eines verteilten Algorithmus

Luhme X

19

Überführung in TLA+-FormelAktionen

Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

Page 20: Modellierung eines verteilten Algorithmus

Luhme X

20

Überführung in TLA+-FormelAktionen

Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

Page 21: Modellierung eines verteilten Algorithmus

Luhme X

21

Überführung in TLA+-FormelSpezifikation

Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

Page 22: Modellierung eines verteilten Algorithmus

Luhme X

22

Neue Modellierung in TLA+

§ in der Petrinetz-Modellierung unrealistisch/zu abstrakt:

§ pending als öffentlicher Nachrichtenplatz§ compass als globale Netzinfrastruktur§ Entnahme von compass-Kanten

§ besser/realistischer:§ agentenbasierte Sicht§ Mailboxen§ lokale Nachrichtenkanäle

Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

Ansatz

Page 23: Modellierung eines verteilten Algorithmus

Luhme X

23

Neue Modellierung in TLA+

§ jede Site/Agent besitzt…§ eine Mailbox für Anfragen§ Nachrichtenkanäle zu seinen Nachbarn§ eine „Vater-Site“ oder das Token§ einen Zustand (idle, requesting, critical)

§ … und sieht§ seine Nachbarn§ sonst nichts

Szenario

cb

T

Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

Page 24: Modellierung eines verteilten Algorithmus

Luhme X

24

c a

b

Neue Modellierung in TLA+

Tb

a

Ablauf

baa

father

;idlec;idleb;idlea

mailboxstate

Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

hier per Definition deterministisch

Page 25: Modellierung eines verteilten Algorithmus

Luhme X

25

c a

b

Neue Modellierung in TLA+

Tb

a

Ablauf

baa

father

requestcidlebidlea

mailboxstate

Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

;

;

;

Page 26: Modellierung eines verteilten Algorithmus

Luhme X

26

c a

b

Neue Modellierung in TLA+

c

Tb

a

Ablauf

baa

father

requestc{c}idleb

idleamailboxstate

Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

;

;

Page 27: Modellierung eines verteilten Algorithmus

Luhme X

27

c a

b

Neue Modellierung in TLA+

b

c

Tb

a

Ablauf

baa

father

requestc{c}idleb{b}idlea

mailboxstate

Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

;

Page 28: Modellierung eines verteilten Algorithmus

Luhme X

28

c a

b

Neue Modellierung in TLA+

c

T

b b

Ablauf

bbb

father

requestc{c}idleb

idleamailboxstate

Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

;

;

Page 29: Modellierung eines verteilten Algorithmus

Luhme X

29

c a

b

Neue Modellierung in TLA+

Tb

c

Ablauf

ccb

father

requestcidlebidlea

mailboxstate

Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

;

;

;

Page 30: Modellierung eines verteilten Algorithmus

Luhme X

30

c a

b

Neue Modellierung in TLA+

Tb

c

Ablauf

ccb

father

criticalcidlebidlea

mailboxstate

Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

;

;

;

Page 31: Modellierung eines verteilten Algorithmus

Luhme X

31

c a

b

Neue Modellierung in TLA+

Tb

c

Ablauf

ccb

father

idlecidlebidlea

mailboxstate

Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

;

;

;

Page 32: Modellierung eines verteilten Algorithmus

Luhme X

32

Neue Modellierung in TLA+

Spezifikation

Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

nur den Agentenbetreffend

die Umweltbetreffend

Page 33: Modellierung eines verteilten Algorithmus

Luhme X

33

Model Checking

die erwartete Zustandsraumexplosion:

§ Petrinetz-Modellierung (n Sites):§

§ Agentenversion (n Agenten):§

→ zu viel für einen Model Checker?

Zustandsraum

Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

Page 34: Modellierung eines verteilten Algorithmus

Luhme X

34

Model Checking

§ TLC akzeptiert eine Teilklasse von TLA+ (hier keine Einschränkung)

§ explizites Model Checking fürendliche Systeme

§ kaum Reduktionstechniken (nur Symmetrie – hier nicht anwendbar)

§ sehr große Schwächen, Lebendigkeit zu beweisen

Model Checker TLC

Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

Page 35: Modellierung eines verteilten Algorithmus

Luhme X

35

Model Checking

§ in keiner der Modellierung (Petrinetz, Agenten) Ergebnisse für mehr als zwei Sites

§ Lebendigkeitsformeln wie z. B.

ließen sich nicht mit TLC beweisen

§ bewiesen: Mutex, Typinvarianten§ die Ergebnisse von TLC sind teilweise

recht eigenartig

Ergebnisse

Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

Page 36: Modellierung eines verteilten Algorithmus

Luhme X

36

Model Checking

Speicherüberlauf bei drei Sites: 4 GB RAM in 30 Minuten…Mutex-Algorithmus

Modellierung als Petrinetz

Überführung inTLA+-Formel

Neue Modellierungin TLA+

Model Checking

Ergebnisse

Erfolgreiche Verifikation (bei vier Sites) jeder Lebendigkeitsformel der Form

Page 37: Modellierung eines verteilten Algorithmus

14.10.2004

Modellierung einesverteilten Algorithmus

Luhme-Workshop 2004

Vielen Dank!

Niels Lohmann

[email protected]://www.informatik.hu-berlin.de/~nlohmann/arbeit