Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit."—  Präsentation transkript:

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

2 1/21 Übersicht Einleitung await – Statement Totale Korrektheit Deadlocks Terminierung

3 2/21 Einleitung Warum ist Programmverifikation so wichtig?

4 2/21 Einleitung Warum ist Programmverifikation so wichtig? – Zuverlässigkeit der Software – Erstellung der Dokumentation einfacher – Kompatibilität besser überprüfbar

5 3/21 Einleitung 1969 Hoare axiomatische Methode für sequentielle Programme 1976 Owicki und Gries erweiterten Hoares Methode für parallele Programme

6 3/21 Einleitung 1969 Hoare axiomatische Methode für sequentielle Programme 1976 Owicki und Gries erweiterten Hoares Methode für parallele Programme -Nicht nur partielle Korrektheit -Sondern auch die anderen Eigenschaften (z.B. Deadlockfreiheit, gegenseitiger Ausschluss)

7 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.

8 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.

9 6/21 Totale Korrektheit Um totale Korrektheit von Parallelen Programmen zu zeigen, müssen wir 1. Deadlockfreiheit 2. Divergenzfreiheit beweisen.

10 7/21 Beispiel Beispielprogramm für Deadlock: x := 1; y := 2; await (x=2) then y := 1; // await (y=1) then x := 2;

11 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.

12 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.

13 9/21 Deadlock Methode von Owicki und Gries: 1. Zähle alle potentiellen Deadlocks auf. 2. Zeige, dass keiner dieser potentiellen Deadlocks eintreten kann.

14 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

15 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.

16 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

17 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 Keine potentiellen Deadlocks können eintreten.

18 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

19 13/21 Beispiel: {x=0} await x = 1 then skip end // x:=1 {x=1}

20 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}.

21 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).

22 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)

23 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.

24 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.

25 16/21 Terminierung while-Schleife:

26 16/21 Terminierung while-Schleife: -Diese Schleifenregel ist korrekt für sequentielle Programme. -Aber Parallele Programme können gegenseitig beeinflussen.

27 17/21 Terminierung Zur zeigen: t nimmt auf jedem möglichen Pfad durch den Schleifenrumpf S abnimmt.

28 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.

29 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)

30 19/21 Terminierung Zusätzlich müssen wir Interferenzfreiheit für totale Korrektheit zeigen: Interferenzfreiheit für partielle Korrektheit + t nimmt nicht zu.

31 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

32 21/21 Zusammenfassung totale Korrektheit = partielle Korrektheit + garantierte Terminierung. Deadlockfreiheit und Divergenzfreiheit Aber es gibt auch Programme, die nicht unbedingt terminiert werden müssen.


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

Ähnliche Präsentationen


Google-Anzeigen