Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

An Axiomatic Proof Technique for Parallel Programs

Ähnliche Präsentationen


Präsentation zum Thema: "An Axiomatic Proof Technique for Parallel Programs"—  Präsentation transkript:

1 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

2 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

3 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

4 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

5 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

6 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

7 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

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

9 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

10 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

11 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

12 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

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

14 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

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

16 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

17 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

18 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

19 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

20 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

21 {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

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

23 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

24 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

25 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

26 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

27 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

28 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

29 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

30 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

31 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

32 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

33 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

34 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

35 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

36 {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

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

38 Vielen Dank für Eure Aufmerksamkeit


Herunterladen ppt "An Axiomatic Proof Technique for Parallel Programs"

Ähnliche Präsentationen


Google-Anzeigen