An Axiomatic Proof Technique for Parallel Programs

Slides:



Advertisements
Ähnliche Präsentationen
Deduktive Datenbanken
Advertisements

Temporale Logiken: LTL und CTL
Imperative Programmierung
Hier einige Hieroglyphen:
Fachdidaktik Seminar – Kernideen der Mathematik
Relationentheorie AIFB SS Transitive (funktionale) Abhängigkeiten Transitive (funktionale) Abhängigkeiten (1|3) Geg.: r: (U | F); A,
Parameter - Vertraulichkeit
Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 4 / 1 Termalgebren Definition "Freie Algebra" Die -Algebra A = [A, F ] heißt.
3. Berechenbarkeit Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar? Intuitiv: Wenn es einen Algorithmus gibt, der sie berechnet! Was heißt,
Einige entscheidbare bzw. rekursiv aufzählbare Sprachen
Proseminar “Software Pioneers” (Prof. Dr. Heike Wehrheim)
Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.
Anfrage-Optimierung und -Bearbeitung in Verteilten DBMS
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
FH-Hof Formale Sprachen - Maschinenmodelle Richard Göbel.
Formale Sprachen – Mächtigkeit von Maschinenmodellen
Nebenläufige Programmierung
Seminar zum pi-Kalkül betreut von Andreas Rossberg
Messung in Einheiten der Standardabweichung
Algorithmentheorie 04 –Hashing
Suche in Texten: Suffix-Bäume
WS Algorithmentheorie 13 - Kürzeste (billigste) Wege Prof. Dr. Th. Ottmann.
Algorithmentheorie 02 – Polynomprodukt und Fast Fourier Transformation
Prof. Dr. S. Albers 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.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 2 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Union-Find-Strukturen
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten Suffix - Bäume.
Eduard Sauerbrei Formale Techniken Eduard Sauerbrei
Symbolisches Model Checking mit Binary Decision Diagrams
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Semantische Fehler Seminar im Grundstudium WS2002/2003:
PG 520 Intelligence Service – gezielte Informationen aus dem Internet
Vorlesung 10 Mutual Exclusion Peter B. Ladkin Sommersemester 2001 Universität Bielefeld Technische Fakultät.
Vorlesung 9.2: Specification Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Rechnerarchitektur Vorlesung 2 Peter B. Ladkin
Christian Schindelhauer
Christian Schindelhauer
Besetzungswahrscheinlichkeiten der Energiezustände:
Poisson - Verteilung P Poisson - Verteilung
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
5 Methoden und Werkzeuge zur Prozessmodellierung
Diskrete Mathe 9 Vorlesung 9 SS 2001
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Polynome und schnelle Fourier-Transformation
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
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.
Auslegung eines Vorschubantriebes
Synchronisation paralleler Transaktionen AIFB SS Serialisierbarkeitsprinzip 4.3 Serialisierbarkeitsprinzip (11/13) Vermutung: Eine Schedule S.
Formale Sprachen Reguläre Sprachen Rudolf FREUND, Marian KOGLER.
Abtragen von Strecken P Q O H t 1-t und Daraus folgt:
Optimierungstechniken in modernen Compilern
Christian Schindelhauer Wintersemester 2006/07 3. Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Christian Schindelhauer Wintersemester 2006/07 2. Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Parallelwinkel im Überblick
Parallelwinkel im Detail
Mehrbenutzerzugriff auf GIS-Daten
Korrektheit von Programmen – Testen
2. Kommunikation und Synchronisation von Prozessen 2
Prüfung auf Serialisierbarkeit (3)
Mikrocomputertechnik Port-Quickie Prof. J. Walter Stand Januar Mikrocomputertechnik Jürgen Walter „Port-Quickie“ 8051-Port Eingabe - Ausgabe.
Schattenspeicher S1 S2 Segmente P11 P12 P13 • • • • P1n P21 P22 P23
Gottfried Vossen 5. Auflage 2008 Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Kapitel 23: Verteilte Transaktionsverarbeitung.
1.3 Verklemmungen Synchronisation löst Probleme – ist aber auch Gefahrenquelle: Prozeß wartet an Synchronisationspunkt – ist gesichert, daß er irgendwann.
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar?
 Präsentation transkript:

An Axiomatic Proof Technique for Parallel Programs Proseminar Assertions An Axiomatic Proof Technique for Parallel Programs (S. Owicki und D. Gries) Hendrik Pfeiffer Betreuerin: Prof. Dr. Heike Wehrheim

Beweisidee von Hoare auf parallele Programme erweitern Themeninhalt Beweisidee von Hoare auf parallele Programme erweitern Verständnis der Parallelität Befehle für Parallelität Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 2 von 22

Themenabgrenzung Totale Korrektheit Partielle Korrektheit Terminierung nach der Ausführung gilt eine bestimmte Eigenschaft Totale Korrektheit Terminierung das Programm hält bei korrekter Eingabe Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 3 von 22

Komplexität der Programme Einsatz in kritischen Bereichen Motivation Komplexität der Programme Einsatz in kritischen Bereichen Verifikation bei parallelen Programmen schwierig informeller Beweis reicht nicht aus Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 4 von 22

Notationen nach Hoare Hoare-Triple: Ableitungsregel: {P} Anweisung {Q} (Standard-Beweisskizze) Ableitungsregel: {P} Anweisung {Q} Annahmen (bekannt) Folgerung Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 5 von 22

Verständnis der Parallelität Befehle für parallele Abschnitte Atomarität Verständnis der Parallelität Befehle für parallele Abschnitte Beweisidee Interferenz-Freiheit Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 6 von 22

Atomarität Eine Aktion A heißt atomar, wenn die in A vorkommenden Variablen während der Ausführung nur von A verändert werden. Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 7 von 22

Atomarität Beispiel: x := 1; y := 2; S = [x := y || y := x ]; Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 8 von 22

Atomarität Beispiel: Zuweisungen nicht atomar Zuweisungen atomar x := 1; y := 2; S = [x := y || y := x ]; Zuweisungen nicht atomar Zuweisungen atomar x = y = 1 x = y = 2 x = 2 und y = 1 x = y = 1 x = y = 2 Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 8 von 22

Auswertungen von Ausdrücken Atomarität atomar bei Owicki und Gries: Auswertungen von Ausdrücken Wertzuweisungen Atomare Bereiche Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 9 von 22

Verständnis der Parallelität Owicki/Gries: Interleaving Verzahnung statt Parallelität Sehr ähnlich zum sequentiellen Ablauf S1 S2 S3 T1 T2 T3 Zeit Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 10 von 22

Verständnis der Parallelität Owicki/Gries: Interleaving Verzahnung statt Parallelität Sehr ähnlich zum sequentiellen Ablauf S1 T1 T2 S2 T3 S3 Zeit Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 10 von 22

Interleaving  Parallelität einzelne Anweisungen können sich nicht beeinflussen Beweisverfahren vereinfacht Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 11 von 22

Synchronisation und Atomarität: Befehle für Parallelität Synchronisation und Atomarität: await B then S parallele Ausführung: cobegin S1//S2//…//Sn coend Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 12 von 22

Cobegin-Anweisung Ziel: {P1} S1 {Q1} {P…} … {Q…} {Pn} Sn {Qn} Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 13 von 22

Cobegin-Anweisung Ziel: folgt {P1} S1 {Q1} {P…} … {Q…} {Pn} Sn {Qn} S1 {P1 Λ P… Λ Pn} … {Q1 Λ Q… Λ Qn} Sn Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 13 von 22

Cobegin-Anweisung: Beispiel 1 x := 1; y := 2; S = [x := 2 || y := 1 ]; {x=1} x:=2; {x=2} {y=2} y:=1; {y=1} Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 14 von 22

Cobegin-Anweisung: Beispiel 1 x := 1; y := 2; S = [x := 2 || y := 1 ]; {x=1} x:=2; {x=2} {y=2} y:=1; {y=1} x:=1; {x=1 Λ y=2} {x=2 Λ y=1} y:=2; Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 14 von 22

Cobegin-Anweisung: Beispiel 2 x := 1; y := 2; S = [x := y || y := x ]; {x=1 Λ y=2} x:=y; {x=2 Λ y=2} {x=1 Λ y=2} y:=x; {x=1 Λ y=1} Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 15 von 22

Cobegin-Anweisung: Beispiel 2 x := 1; y := 2; S = [x := y || y := x ]; {x=1 Λ y=2} x:=y; {x=2 Λ y=2} {x=1 Λ y=2} y:=x; {x=1 Λ y=1} {(x=1 Λ y=2) Λ (x=2 Λ y=2)} {(x=2 Λ y=2) Λ (x=1 Λ y=1)} x:=y; y:=x; Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 15 von 22

{P1 Λ…Λ Pn} cobegin S1||…||Sn coend {Q1 Λ…Λ Qn} Cobegin-Anweisung Ziel: {P1} S1 {Q1},…, {Pn} Sn {Qn} {P1 Λ…Λ Pn} cobegin S1||…||Sn coend {Q1 Λ…Λ Qn} kein Unterschied zwischen sequentieller und paralleler Ausführung funktioniert bei Verzicht auf gemeinsame Variablen Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 16 von 22

Beweisidee für parallele Programme: Korrektheit für Teilprogramme beweisen Zeigen, dass sich Beweise der Teilprogramme gegenseitig nicht beeinflussen Interferenz-Freiheit beweisen Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 17 von 22

Interferenz-Freiheit: einzelne Anweisungen Anweisung T interferiert nicht mit Beweis {P} S {Q}, falls gilt: {Q Λ pre(T)} T {Q} Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 18 von 22

S: T: Interferenz-Freiheit: einzelne Anweisungen Anweisung T interferiert nicht mit Beweis {P} S {Q}, falls gilt: {Q Λ pre(T)} T {Q} S: T: {x=1} {y=2} x:=2; y:=1; {x=2} {y=1} Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 18 von 22

S: T: Interferenz-Freiheit: einzelne Anweisungen Anweisung T interferiert nicht mit Beweis {P} S {Q}, falls gilt: {Q Λ pre(T)} T {Q} S: T: {x=1} {y=2} {x=2 Λ y=2} x:=2; y:=1; {x=2} {y=1} {x=2} Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 18 von 22

Interferenz-Freiheit: Standard-Beweisskizzen Die Standardbeweisskizzen {P} S {Q} und {U} T {V} sind interferenzfrei, falls gilt: Es existiert keine Anweisung Ti in T, die mit einer Beweisskizze {Pj} Sj {Qj} in S interferiert und andersherum Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 19 von 22

Interferenz-Freiheit: Standard-Beweisskizzen {P} {P1} {U1} {U} S S1 T1 T {Q1} {V1} {P2} {U2} S2 T2 {Q} {Q2} {V2} {V} Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 20 von 22

Interferenz-Freiheit: Standard-Beweisskizzen {P} {P1} {U1} {U} S S1 T1 T {Q1} {V1} {P2} {U2} S2 T2 {Q} {Q2} {V2} {V} Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 20 von 22

Interferenz-Freiheit: Standard-Beweisskizzen {P} {P1} {U1} {U} S S1 T1 T {Q1} {V1} {P2} {U2} S2 T2 {Q} {Q2} {V2} {V} Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 20 von 22

Interferenz-Freiheit: Standard-Beweisskizzen {P} {P1} {U1} {U} S S1 T1 T {Q1} {V1} {P2} {U2} S2 T2 {Q} {Q2} {V2} {V} Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 20 von 22

Interferenz-Freiheit: Standard-Beweisskizzen {P} {P1} {U1} {U} S S1 T1 T {Q1} {V1} {P2} {U2} S2 T2 {Q} {Q2} {V2} {V} Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 20 von 22

Interferenz-Freiheit: Standard-Beweisskizzen {P} {P1} {U1} {U} S S1 T1 T {Q1} {V1} {P2} {U2} S2 T2 {Q} {Q2} {V2} {V} Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 20 von 22

Interferenz-Freiheit: Standard-Beweisskizzen {P} {P1} {U1} {U} S S1 T1 T {Q1} {V1} {P2} {U2} S2 T2 {Q} {Q2} {V2} {V} Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 20 von 22

Interferenz-Freiheit: Standard-Beweisskizzen {P} {P1} {U1} {U} S S1 T1 T {Q1} {V1} {P2} {U2} S2 T2 {Q} {Q2} {V2} {V} Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 20 von 22

Interferenz-Freiheit: Standard-Beweisskizzen {P} {P1} {U1} {U} S S1 T1 T {Q1} {V1} {P2} {U2} S2 T2 {Q} {Q2} {V2} {V} Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 20 von 22

{P1} S1 {Q1},…, {Pn} Sn {Qn} sind interferenzfrei Beweisidee formal 1. {P1} S1 {Q1} ,…, {Pn} Sn {Qn} Korrektheitsbeweis (sequentiell) 2. {P1} S1 {Q1},…, {Pn} Sn {Qn} sind interferenzfrei {P1 Λ…Λ Pn} cobegin S1||…||Sn coend {Q1 Λ…Λ Qn} Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) Seite 21 von 22

Zusammenfassung Beweismethode für parallele Programme mit gemeinsamen Variablen Methode beruht auf Hoare´s Beweisschema für sequentielle Programme In den 70er Jahren entwickelt Problem: sehr aufwendig (exponentiell)

Vielen Dank für Eure Aufmerksamkeit