Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Rosamund Appenzeller Geändert vor über 10 Jahren
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
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.