1 / 32

Terminierung und Deadlocks

Terminierung und Deadlocks. Totale Korrektheit. Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim. Übersicht. Einleitung await – Statement Totale Korrektheit Deadlocks Terminierung. Einleitung . ● Warum ist Programmverifikation so wichtig?. Einleitung .

kiral
Download Presentation

Terminierung und Deadlocks

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. Einleitung ● Warum ist Programmverifikation so wichtig? 2/21

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

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

  6. 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) 3/21

  7. 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. 4/21

  8. 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. 5/21

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

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

  11. 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. 8/21

  12. 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. 8/21

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

  14. Deadlock Methode von Owicki und Gries: • Zähle alle potentiellen Deadlocks auf. • 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 9/21

  15. 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. 10/21

  16. 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: • fallsawait B then S end, • falls 11/21

  17. 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: • fallsawait B then S end, • falls Keine potentiellen Deadlocks können eintreten. 11/21

  18. 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 12/21

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

  20. 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}. 13/21

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

  22. 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) 13/21

  23. 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. 14/21

  24. 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. 15/21

  25. Terminierung while-Schleife: 16/21

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

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

  28. 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. 17/21

  29. 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) 18/23

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

  31. 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 Beispiel 20/21

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

More Related