Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

32
Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit

Transcript of Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

Page 1: Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

Terminierung und Deadlocks

Enkhbat Daginaa

Betreuerin Prof. Heike Wehrheim

Totale Korrektheit

Page 2: Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

1/21

Übersicht

Einleitung await – Statement Totale Korrektheit Deadlocks Terminierung

Page 3: Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

2/21

Einleitung

● Warum ist Programmverifikation so wichtig?

Page 4: Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

2/21

Einleitung

● Warum ist Programmverifikation so wichtig?

– Zuverlässigkeit der Software

– Erstellung der Dokumentation einfacher

– Kompatibilität besser überprüfbar

Page 5: Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

3/21

Einleitung

1969 Hoare axiomatische Methode für sequentielle Programme

1976 Owicki und Gries erweiterten Hoare‘s Methode für parallele Programme

Page 6: Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

3/21

Einleitung

1969 Hoare axiomatische Methode für sequentielle Programme

1976 Owicki und Gries erweiterten Hoare‘s Methode für parallele Programme

-Nicht nur partielle Korrektheit-Sondern auch die anderen Eigenschaften (z.B. Deadlockfreiheit, gegenseitiger Ausschluss)

Page 7: Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

4/21

await - Statement

Formal: await B then S end await wird für die Synchronisation von Prozessen

verwendet.

B true => S atomar (unteilbar) ausgeführt werden

B false => S blockiert und andere Komponenten können ausgeführt werden.

Page 8: Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

5/21

Totale Korrektheit

{p} S {q} heißt partiell korrekt, wenn jede

terminierende Berechnung von S, die in einem p- Zustand startet, in einem q-Zustand terminiert.

{p} S {q} heißt total korrekt, wenn jede

Berechnung von S, die in einem p-Zustand

startet, terminiert und ihren Endzustand q erfüllt.

Page 9: Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

6/21

Totale Korrektheit

Um totale Korrektheit von Parallelen Programmen zu zeigen, müssen wir

1. Deadlockfreiheit

2. Divergenzfreiheit

beweisen.

Page 10: Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

7/21

Beispiel

Beispielprogramm für Deadlock:

x := 1;

y := 2;

await (x=2) then y := 1;

//

await (y=1) then x := 2;

Page 11: Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

8/21

Deadlock:

Def: Ein Programm S mit Beweisskizze {p} S {q} ist deadlockfrei, falls es keinen Zustand x gibt (der p erfüllt), von dem aus S in einen Deadlock geraten kann.

Page 12: Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

8/21

Deadlock

Def: Ein Programm S mit Beweisskizze {p} S {q} ist deadlockfrei, falls es keinen Zustand x gibt (der p erfüllt), von dem aus S in einen Deadlock geraten kann.

d.h. Es liegt ein noch nicht terminiertes Programm/Teilprogramm vor, das keinen Schritt weiter ausführen kann.

Page 13: Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

9/21

Deadlock

Methode von Owicki und Gries:

1. Zähle alle potentiellen Deadlocks auf.

2. Zeige, dass keiner dieser potentiellen Deadlocks eintreten kann.

Page 14: Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

9/21

Deadlock

Methode von Owicki und Gries:

1. Zähle alle potentiellen Deadlocks auf.

2. Zeige, dass keiner dieser potentiellen Deadlocks eintreten kann.

Wenn keiner der potentiellen Deadlocks eintreten kann, tritt somit kein echter Deadlock ein => Das Programm ist Deadlock-Frei

Page 15: Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

10/21

Deadlock

Def: Sei ein paralleles Programm

(i) heißt potenzieller Deadlock von S, falls die folgenden zwei Bedingungen erfüllt sind:

- Für jedes i ist entweder eine await- Anweisung in oder die leere Anweisung E, für die Terminierung von steht.

- Es gibt ein i, so dass eine await-Anweisung in ist.

]S//...//S[ n1

)R...R( n1

iR iSiS

iSiR

Page 16: Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

11/21

Deadlock

(ii) Gegeben seien interferenz-freie Standard Beweisskizzen i € {1,…,n} , für schwache totale Korrektheit. Zu jedem potentiellen

Deadlock gibt es ein Tupel von Zusicherungen:

• falls await B then S end,• falls

)r,...,r( n1

iR,B)R(prer ii ,qr ii .ER i

},q{S}p{ i*ii

Page 17: Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

11/21

Deadlock

(ii) Gegeben seien interferenz-freie Standard Beweisskizzen i € {1,…,n} , für schwache totale Korrektheit. Zu jedem potentiellen

Deadlock gibt es ein Tupel von Zusicherungen:

• falls await B then S end,• falls

)r,...,r( n1

iR,B)R(prer ii ,qr ii .ER i

},q{S}p{ i*ii

Keine potentiellen Deadlocks können eintreten. in1i r

Page 18: Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

12/21

Deadlock

Parallelismus mit Deadlock-Freiheit:

(1) Die Standard-Beweisskizzen

für schwache totale Korrektheit sind interferenzfrei.

(2) Für jeden potentiellen Deadlock von erfüllt das zugehörige Tupel von Zusicherungen die Formel.ri

n1i

},n,...,1{i},q{S}p{ i*ii

)R...R( n1 ]S//...//S[ n1

}q]{S//...//S}[p{ in1in1i

n1i

Page 19: Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

13/21

Beispiel:

{x=0}

await x = 1 then skip end

//

x:=1

{x=1}

Page 20: Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

13/21

Beispiel:

{x=0} await x = 1 then skip end // x:=1 {x=1} {x=0 x=1} await x=1 then skip end {x=1} und {x=0} x:=1 {x=1}.

Page 21: Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

13/21

Beispiel:

{x=0} await x = 1 then skip end // x:=1 {x=1} {x=0 x=1} await x=1 then skip end {x=1} und {x=0} x:=1 {x=1}.

Potentielle Deadlock:(await x=1 then skip end, E).

Page 22: Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

13/21

Beispiel:

{x=0} await x = 1 then skip end // x:=1{x=1} {x=0 x=1} await x=1 then skip end {x=1} und {x=0} x:=1 {x=1}.

Potentielle Deadlock:(await x=1 then skip end, E).

Als Zusicherung:((x=0 x=1) x 1, x=1)

Page 23: Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

14/21

Divergenz

Eine Berechnung von S divergiert, falls sie unendlich ist. S kann von x aus divergieren, falls es eine unendliche Berechnung von S gibt, die in x startet.

Page 24: Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

15/21

Terminierung

Um die Terminierung für totale Korrektheit zu zeigen, reicht while - Schleife von partielle Korrektheit nicht aus.

  Hierbei gilt die Nachbedingung allerdings nur,

wenn die Schleife verlassen wird, wenn sie also terminiert.

}Bp{S)B(while}p{

}p{S}Bp{

Bp

Page 25: Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

16/21

Terminierung

while-Schleife:

}Bp{S)B(while}p{

}zt{S;tz}Bp{,0tBp},p{S}Bp{

Page 26: Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

16/21

Terminierung

while-Schleife:

}Bp{S)B(while}p{

}zt{S;tz}Bp{,0tBp},p{S}Bp{

-Diese Schleifenregel ist korrekt für sequentielle Programme.

-Aber Parallele Programme können gegenseitig beeinflussen.

Page 27: Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

17/21

Terminierung

Zur zeigen:

t nimmt auf jedem möglichen Pfad durch den Schleifenrumpf S abnimmt.

Page 28: Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

17/21

Terminierung

Zur zeigen:

t nimmt auf jedem möglichen Pfad durch den Schleifenrumpf S abnimmt.

Unter einem Pfad versteht man eine möglicherweise leere Folge von normalen Wertzuweisung und atomaren Bereichen.

Page 29: Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

18/23

Terminierung

Neue Schleifenregel:

1) ist eine Standart-Beweisskizze,

2) für jede normale Wertzuweisung und jeden atomaren Bereich T in S,

3) für jeden Pfad gibt es eine normale Wertzuweisung oder einen atomaren Bereich T in mit

4)

}p{S}Bp{ *

)S(path

}zt{T}zt)T(pre{ 0tp

}Bp{S}Bp{whileBdo}p{ *

}zt{T}zt)T(pre{

Page 30: Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

19/21

Terminierung

Zusätzlich müssen wir Interferenzfreiheit für totale Korrektheit zeigen:

Interferenzfreiheit für partielle Korrektheit + t nimmt nicht zu.

}zt{T}zt)T(pre{

Page 31: Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

20/21

Beispiel

S1:

while (x>0) do

y := 0;

if (y=0)

x := x-1;

else

y := 0

od

S2:

while (x>0) do

y := 1;

if (y=1)

x := x-1;

else

y := 1

od

]S//S[S 21

Page 32: Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.

21/21

Zusammenfassung

totale Korrektheit = partielle Korrektheit + garantierte Terminierung.

Deadlockfreiheit und Divergenzfreiheit Aber es gibt auch Programme, die nicht

unbedingt terminiert werden müssen.