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

Slides:



Advertisements
Ähnliche Präsentationen
Definition [1]: Sei S eine endliche Menge und sei p eine Abbildung von S in die positiven reellen Zahlen Für einen Teilmenge ES von S sei p definiert.
Advertisements

Programmierung 1 - Repetitorium
Programmierung 1 - Repetitorium
10.2 Wechselseitiger Ausschluss in Hardware
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Prof. Dr. S. Albers Prof.Dr.Th Ottmann
Polynomial Root Isolation
Rekursion vs. Iteration
Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
Bounded Model Checking II
Prof. Dr. W. Conen 15. November 2004
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten KMP, BM.
Zusammenfassung der Vorwoche
Suche in Texten (Stringsuche )
Finale Semantik und beobachtbares Verhalten
3. Berechenbarkeit Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar? Intuitiv: Wenn es einen Algorithmus gibt, der sie berechnet! Was heißt,
Hauptseminar Modellüberprüfung Kathrin Ott
Einige entscheidbare bzw. rekursiv aufzählbare Sprachen
An Axiomatic Proof Technique for Parallel Programs
1 Computergestützte Verifikation Probleme bei der Softwareverifikation 1.komplexe Datentypen und Expressions 2.Pointer und dynamische Datenstrukturen.
Systeme 1 Kapitel 7 Deadlocks WS 2009/10.
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Kapitel 10 Nebenläufigkeit und wechselseitiger Ausschluss
Übung 6.1Turing-Maschine 1.Machen Sie sich mit der Funktionsweise des Busy Beaver-Programms vertraut Vollziehen sie die 11 Schritte der ersten Turing-Tabelle.
Algorithmentheorie 04 –Hashing
Suche in Texten: Suffix-Bäume
WS Algorithmentheorie 13 - Kürzeste (billigste) Wege Prof. Dr. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 2 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten Suffix - Bäume.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (17 –Turingmaschinen) Prof. Dr. Th. Ottmann.
Kapitel 5 Stetigkeit.
Kapitel 6 Differenzierbarkeit. Kapitel 6: Differenzierbarkeit © Beutelspacher Juni 2005 Seite 2 Inhalt 6.1 Die Definition 6.2 Die Eigenschaften 6.3 Extremwerte.
Eduard Sauerbrei Formale Techniken Eduard Sauerbrei
Vortrag im Rahmen des Seminars
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
PKJ 2005/1 Stefan Dissmann Zusammenfassung der Vorwoche Variable stehen für (einen) Wert, der sich im Programmablauf ändern kann. Variablen besitzen einen.
Zusammenfassung Vorwoche
Christian Schindelhauer
Wir suchen ‘ mit m = m    ‘ c  ‘ mod 26
DVG Ablaufsteuerung
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Isabelle/HOL ( Kripke Structures & Model Checking ) Ying Wang, Nelli Bärsch, Bartosz Rynarzewski,
5 Methoden und Werkzeuge zur Prozessmodellierung
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Polynome und schnelle Fourier-Transformation
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Purga - Scriptengine Ein Einblick.
Zustandsübergangsdiagramme (1)
Automaten, formale Sprachen und Berechenbarkeit II SoSe 2004 Prof. W. Brauer Teil 1: Wiederholung (Vor allem Folien von Priv.-Doz. Dr. Kindler vom WS 2001/02.
Algorithmen und Datenstrukturen Übungsmodul 3
Arne Vater Wintersemester 2006/ Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Computergestützte Verifikation
Korrektheit von Programmen – Testen
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
1.3 Verklemmungen Synchronisation löst Probleme – ist aber auch Gefahrenquelle: Prozeß wartet an Synchronisationspunkt – ist gesichert, daß er irgendwann.
Korrektheit von Programmen – Testen
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar?
Prüfungsbesprechung Barbara Scheuner Vorlesung: Programmieren und Problemlösen Prof. Hans Hinterberger.
Dr. Wolfram Amme, Verifikation imperativer Programme, Informatik II, FSU Jena, SS Verifikation von imperativen Programmen.
 Präsentation transkript:

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

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

2/21 Einleitung Warum ist Programmverifikation so wichtig?

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

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

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)

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.

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.

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

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

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.

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.

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

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

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.

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

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.

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

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

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

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

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)

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.

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.

16/21 Terminierung while-Schleife:

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

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

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.

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)

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

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

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