Folie

Werbung
Proseminar Assertions
An Axiomatic Proof Technique for
Parallel Programs
(S. Owicki und D. Gries)
Hendrik Pfeiffer
Betreuerin: Prof. Dr. Heike Wehrheim
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
Partielle Korrektheit
nach der Ausführung gilt
eine bestimmte Eigenschaft
Terminierung
Totale
Korrektheit
das Programm hält bei
korrekter Eingabe
Problemstellung
Sequentiell (Hoare)
Parallel (Owicki/Gries)
Seite 3 von 22
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:
{P} Anweisung {Q}
(Standard-Beweisskizze)
• Ableitungsregel:
Annahmen (bekannt)
Folgerung
Problemstellung
Sequentiell (Hoare)
Parallel (Owicki/Gries)
Seite 5 von 22
Parallelität
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:
x := 1;
y := 2;
S = [x := y || y := x ];
Zuweisungen
nicht atomar
1. x = y = 1
2. x = y = 2
3. x = 2 und y = 1
Zuweisungen
atomar
1. x = y = 1
2. x = y = 2
Problemstellung
Sequentiell (Hoare)
Parallel (Owicki/Gries)
Seite 8 von 22
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
T1
T2
S3
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
Interleaving:
einzelne Anweisungen können sich nicht
beeinflussen
Beweisverfahren vereinfacht
Problemstellung
Sequentiell (Hoare)
Parallel (Owicki/Gries)
Seite 11 von 22
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:
{P1}
S1
{Q1}
{P…}
…
{Q…}
{Pn}
Sn
{Qn}
folgt
S1
{P1 Λ P… Λ Pn}
…
{Q1 Λ Q… Λ Qn}
Sn
Problemstellung
Sequentiell (Hoare)
Parallel (Owicki/Gries)
Seite 13 von 22
Cobegin-Anweisung: Beispiel 1
Beispiel:
{x=1}
x:=2;
x := 1;
y := 2;
S = [x := 2 || y := 1 ];
{x=2}
{y=2}
y:=1;
{y=1}
Problemstellung
Sequentiell (Hoare)
Parallel (Owicki/Gries)
Seite 14 von 22
Cobegin-Anweisung: Beispiel 1
Beispiel:
{x=1}
x:=2;
x := 1;
y := 2;
S = [x := 2 || y := 1 ];
{x=2}
{y=2}
y:=1;
{y=1}
x:=1;
{x=1 Λ y=2}
y:=2;
{x=2 Λ y=1}
Problemstellung
Sequentiell (Hoare)
Parallel (Owicki/Gries)
Seite 14 von 22
Cobegin-Anweisung: Beispiel 2
Beispiel:
{x=1 Λ y=2}
x:=y;
x := 1;
y := 2;
S = [x := y || y := x ];
{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
Beispiel:
{x=1 Λ y=2}
x:=y;
{(x=1 Λ y=2)
Λ
(x=2 Λ y=2)}
x := 1;
y := 2;
S = [x := y || y := x ];
{x=2 Λ y=2}
{x=1 Λ y=2}
y:=x;
{x=1 Λ y=1}
x:=y;
{(x=2 Λ y=2)
y:=x;
Λ
(x=1 Λ y=1)}
Problemstellung
Sequentiell (Hoare)
Parallel (Owicki/Gries)
Seite 15 von 22
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
Beweisidee für parallele Programme:
1. Korrektheit für Teilprogramme beweisen
2. 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
Interferenz-Freiheit: einzelne Anweisungen
Anweisung T interferiert nicht mit Beweis
{P} S {Q}, falls gilt:
{Q Λ pre(T)} T {Q}
S:
{x=1}
T:
{y=2}
x:=2;
y:=1;
{x=2}
{y=1}
Problemstellung
Sequentiell (Hoare)
Parallel (Owicki/Gries)
Seite 18 von 22
Interferenz-Freiheit: einzelne Anweisungen
Anweisung T interferiert nicht mit Beweis
{P} S {Q}, falls gilt:
{Q Λ pre(T)} T {Q}
S:
{x=1}
T:
{y=2}
x:=2;
y:=1;
{x=2}
{y=1}
{x=2 Λ y=2}
{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}
S
{Q}
{P1}
S1
{U1}
T1
{Q1}
{V1}
{P2}
{U2}
S2
T2
{Q2}
{V2}
{U}
T
{V}
Problemstellung
Sequentiell (Hoare)
Parallel (Owicki/Gries)
Seite 20 von 22
Interferenz-Freiheit: Standard-Beweisskizzen
{P}
S
{Q}
{P1}
S1
{U1}
T1
{Q1}
{V1}
{P2}
{U2}
S2
T2
{Q2}
{V2}
{U}
T
{V}
Problemstellung
Sequentiell (Hoare)
Parallel (Owicki/Gries)
Seite 20 von 22
Interferenz-Freiheit: Standard-Beweisskizzen
{P}
S
{Q}
{P1}
S1
{U1}
T1
{Q1}
{V1}
{P2}
{U2}
S2
T2
{Q2}
{V2}
{U}
T
{V}
Problemstellung
Sequentiell (Hoare)
Parallel (Owicki/Gries)
Seite 20 von 22
Interferenz-Freiheit: Standard-Beweisskizzen
{P}
S
{Q}
{P1}
S1
{U1}
T1
{Q1}
{V1}
{P2}
{U2}
S2
T2
{Q2}
{V2}
{U}
T
{V}
Problemstellung
Sequentiell (Hoare)
Parallel (Owicki/Gries)
Seite 20 von 22
Interferenz-Freiheit: Standard-Beweisskizzen
{P}
S
{Q}
{P1}
S1
{U1}
T1
{Q1}
{V1}
{P2}
{U2}
S2
T2
{Q2}
{V2}
{U}
T
{V}
Problemstellung
Sequentiell (Hoare)
Parallel (Owicki/Gries)
Seite 20 von 22
Interferenz-Freiheit: Standard-Beweisskizzen
{P}
S
{Q}
{P1}
S1
{U1}
T1
{Q1}
{V1}
{P2}
{U2}
S2
T2
{Q2}
{V2}
{U}
T
{V}
Problemstellung
Sequentiell (Hoare)
Parallel (Owicki/Gries)
Seite 20 von 22
Interferenz-Freiheit: Standard-Beweisskizzen
{P}
S
{Q}
{P1}
S1
{U1}
T1
{Q1}
{V1}
{P2}
{U2}
S2
T2
{Q2}
{V2}
{U}
T
{V}
Problemstellung
Sequentiell (Hoare)
Parallel (Owicki/Gries)
Seite 20 von 22
Interferenz-Freiheit: Standard-Beweisskizzen
{P}
S
{Q}
{P1}
S1
{U1}
T1
{Q1}
{V1}
{P2}
{U2}
S2
T2
{Q2}
{V2}
{U}
T
{V}
Problemstellung
Sequentiell (Hoare)
Parallel (Owicki/Gries)
Seite 20 von 22
Interferenz-Freiheit: Standard-Beweisskizzen
{P}
S
{Q}
{P1}
S1
{U1}
T1
{Q1}
{V1}
{P2}
{U2}
S2
T2
{Q2}
{V2}
{U}
T
{V}
Problemstellung
Sequentiell (Hoare)
Parallel (Owicki/Gries)
Seite 20 von 22
Beweisidee formal
{P1} S1 {Q1}
,…,
{Pn} Sn {Qn}
1.
Korrektheitsbeweis
(sequentiell)
{P1} S1 {Q1},…, {Pn} Sn {Qn} sind interferenzfrei
2. {P
1 Λ…Λ
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
Herunterladen