Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "An Axiomatic Proof Technique for Parallel Programs (S. Owicki und D. Gries) Hendrik Pfeiffer Betreuerin: Prof. Dr. Heike Wehrheim Proseminar Assertions."—  Präsentation transkript:

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

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

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

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

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

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

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

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

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

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

11 Owicki/Gries: Interleaving Verzahnung statt Parallelität Sehr ähnlich zum sequentiellen Ablauf Verständnis der Parallelität Zeit S1S1 S3S3 S2S2 T1T1 T2T2 T3T3 Seite 10 von 22 Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries)

12 Verständnis der Parallelität Zeit S1S1 S3S3 S2S2 T1T1 T2T2 T3T3 Owicki/Gries: Interleaving Verzahnung statt Parallelität Sehr ähnlich zum sequentiellen Ablauf Seite 10 von 22 Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries)

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

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

15 Ziel: Cobegin-Anweisung Seite 13 von 22 S1S1 SnSn … {P 1 }{Q 1 }{P … }{Q … }{P n }{Q n } Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries)

16 Ziel: folgt Cobegin-Anweisung Seite 13 von 22 S1S1 SnSn … {P 1 }{Q 1 }{P … }{Q … }{P n }{Q n } {P 1 Λ P … Λ P n } S1S1 … SnSn {Q 1 Λ Q … Λ Q n } Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries)

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

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

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

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

21 Ziel: Cobegin-Anweisung Seite 16 von 22 {P 1 } S 1 {Q 1 },…, {P n } S n {Q n } {P 1 Λ … Λ P n } cobegin S 1 ||…||S n coend {Q 1 Λ … Λ Q n } kein Unterschied zwischen sequentieller und paralleler Ausführung funktioniert bei Verzicht auf gemeinsame Variablen Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries)

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

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

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

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

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

27 Interferenz-Freiheit: Standard-Beweisskizzen Seite 20 von 22 Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) {P 1 } S1S1 {Q1}{Q1} {P2}{P2} S2S2 {Q2}{Q2} {U 1 } T1T1 {V1}{V1} {U2}{U2} T2T2 {V2}{V2} T {U} {V} S {P} {Q}

28 Interferenz-Freiheit: Standard-Beweisskizzen Seite 20 von 22 Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) {P 1 } S1S1 {Q1}{Q1} {P2}{P2} S2S2 {Q2}{Q2} {U 1 } T1T1 {V1}{V1} {U2}{U2} T2T2 {V2}{V2} T {U} {V} S {P} {Q}

29 Interferenz-Freiheit: Standard-Beweisskizzen Seite 20 von 22 Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) {P 1 } S1S1 {Q1}{Q1} {P2}{P2} S2S2 {Q2}{Q2} {U 1 } T1T1 {V1}{V1} {U2}{U2} T2T2 {V2}{V2} T {U} {V} S {P} {Q}

30 Interferenz-Freiheit: Standard-Beweisskizzen Seite 20 von 22 Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) {P 1 } S1S1 {Q1}{Q1} {P2}{P2} S2S2 {Q2}{Q2} {U 1 } T1T1 {V1}{V1} {U2}{U2} T2T2 {V2}{V2} T {U} {V} S {P} {Q}

31 Interferenz-Freiheit: Standard-Beweisskizzen Seite 20 von 22 Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) {P 1 } S1S1 {Q1}{Q1} {P2}{P2} S2S2 {Q2}{Q2} {U 1 } T1T1 {V1}{V1} {U2}{U2} T2T2 {V2}{V2} T {U} {V} S {P} {Q}

32 Interferenz-Freiheit: Standard-Beweisskizzen Seite 20 von 22 Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) {P 1 } S1S1 {Q1}{Q1} {P2}{P2} S2S2 {Q2}{Q2} {U 1 } T1T1 {V1}{V1} {U2}{U2} T2T2 {V2}{V2} T {U} {V} S {P} {Q}

33 Interferenz-Freiheit: Standard-Beweisskizzen Seite 20 von 22 Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) {P 1 } S1S1 {Q1}{Q1} {P2}{P2} S2S2 {Q2}{Q2} {U 1 } T1T1 {V1}{V1} {U2}{U2} T2T2 {V2}{V2} T {U} {V} S {P} {Q}

34 Interferenz-Freiheit: Standard-Beweisskizzen Seite 20 von 22 Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) {P 1 } S1S1 {Q1}{Q1} {P2}{P2} S2S2 {Q2}{Q2} {U 1 } T1T1 {V1}{V1} {U2}{U2} T2T2 {V2}{V2} T {U} {V} S {P} {Q}

35 Interferenz-Freiheit: Standard-Beweisskizzen Seite 20 von 22 Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries) {P 1 } S1S1 {Q1}{Q1} {P2}{P2} S2S2 {Q2}{Q2} {U 1 } T1T1 {V1}{V1} {U2}{U2} T2T2 {V2}{V2} T {U} {V} S {P} {Q}

36 Beweisidee formal Seite 21 von 22 {P 1 } S 1 {Q 1 },…, {P n } S n {Q n } sind interferenzfrei {P 1 Λ … Λ P n } cobegin S 1 ||…||S n coend {Q 1 Λ … Λ Q n } {P 1 } S 1 {Q 1 },…, {P n } S n {Q n } Korrektheitsbeweis (sequentiell) Problemstellung Sequentiell (Hoare) Parallel (Owicki/Gries)

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

38 Vielen Dank für Eure Aufmerksamkeit


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

Ähnliche Präsentationen


Google-Anzeigen