Vorlesung 4

Werbung
Modellierung und Analyse mittels FSPs
Übersicht- Wiederholung
Analysevefahren am Beispiel
Wechselseitiger Ausschluß
Beispielproblem: Interferenz von Prozessen und
wechselseitiger Ausschluß (mutual exclusion).
Modellierung: FSP Modell
II
Analyse: Testen
Komposition mit Fehlerdetektionsprozeß
Zustandsraumexploration
Minimierung
Analyse von nebenläufigen Prozessen
1
Analyse von nebenläufigen Prozessen
2
Zustandsraumexploration - Eigenschaften ermitteln
Fehlersuche mittels erschöpfender Suche
‹ Welche Eigenschaften sind erkennbar?
z Erreichbarkeit von Zuständen mit besonderen Eigenschaften
z Durchführbarkeit von Abläufen, Sequenzen von Aktionen
‹ Wie lassen sich Eigenschaften beschreiben & erkennen ?
z Spezielle Zustände als Teilmenge des Zustandsraum leicht
charakterisierbar, Erkennung entspricht Existenztest im Zustandsraum
z Beschreibung von Abläufen oder Zuständen durch zusätzliches
beobachtendes Teilmodell, das ggfs Deadlock/ERROR bewirkt.
Impliziert Transformation des Modells und Existenztest bzgl spezieller
Zustände im LTS
z Eigenschaftsbeschreibung durch eigene Sprache (Modale Logik) und
Evaluation am LTS durch spezielle Verfahren (Graphalgorithmen)
‹ Für Benutzerinteraktion wichtig:
z Angabe eines Zeugen, falls eine Eigenschaft vorliegt
z Angabe eines Gegenbeispiels, falls eine Eigenschaft nicht gilt
Das Modell wird mit einem TEST Prozeß komponiert, der die
Summe der Ankünfte mit dem angezeigten Wert vergleicht:
Analyse von nebenläufigen Prozessen
TEST
= TEST[0],
TEST[v:T] =
(when (v<N){east.arrive,west.arrive}->TEST[v+1]
|end->CHECK[v]
),
CHECK[v:T] =
Wie STOP, nur
(display.value.read[u:T] ->
ERROR ist ein
(when (u==v) right -> TEST[v]
vordefinierter FSP
|when (u!=v) wrong -> ERROR
Prozeß mit fester
)
Zustandsnummer -1
)+{display.VarAlpha}.
im LTS.
3
Ornamental Garden Modell - Fehlersuche
Analyse von nebenläufigen Prozessen
4
Interferenz und wechselseitiger Ausschluß
||TESTGARDEN = (GARDEN || TEST).
Mit LTSA erschöpfende Suche nach ERROR.
Trace zum Fehlerfall in TEST:
go
east.arrive
east.value.read.0
west.arrive
west.value.read.0
east.value.write.1
west.value.write.1
end
display.value.read.1
wrong
Analyse von nebenläufigen Prozessen
Ein destruktives Update, das durch beliebiges
Interleaving aus Lese- und Schreiboperationen
erzeugt wird, heißt Interferenz.
LTSA produziert
den kürzesten
Pfad zum ERROR
Zustand.
BFS oder DFS?
5
Fehler durch Interferenz sind schwer zu
lokalisieren. Generelle Lösung: Methoden dürfen
nur im wechselseitigen Ausschluß auf geteilte
Objekte zugreifen. Wechselseitiger Ausschluß
kann durch atomare Aktionen modelliert werden.
(klassisches Thema in Vorlesung Betriebssysteme)
Analyse von nebenläufigen Prozessen
6
Wechselseitiger Ausschluß im Beispielproblem
Modelierung eines wechselseitigen Ausschlusses
Wir definieren einen LOCK Prozeß, komponieren in mit Prozeß
VAR und modifizieren das Alphabet:
LOCK = (acquire->release->LOCK).
||LOCKVAR = (LOCK || VAR).
set VarAlpha = {value.{read[T],write[T],
acquire, release}}
Wir ergänzen TURNSTILE um die Belegung/Freigabe des Locks:
Java kann mit jedem Objekt einen lock assoziieren (synchronized).
Bei Aufruf einer Methode wird zusätzlicher Code zur Belegung
(Aquire, vor Ausführung) und Freigabe (Release nach Ausführung
und vor Return) des Locks durchlaufen. Nebenläufige Prozesse
müssen ggfs bei Belegung zunächst auf Freigabe des Locks warten.
Analyse von nebenläufigen Prozessen
7
Verbessertes Ornamental Garden Modell - Fehlersuche
Animation eines
Beispiel Traces
TURNSTILE = (go
-> RUN),
RUN
= (arrive-> INCREMENT
|end
-> TURNSTILE),
INCREMENT = (value.acquire
-> value.read[x:T]->value.write[x+1]
-> value.release->RUN
)+VarAlpha.
Analyse von nebenläufigen Prozessen
8
Zusammenfassung
go
east.arrive
east.value.acquire
east.value.read.0
east.value.write.1
east.value.release
west.arrive
west.value.acquire
west.value.read.1
west.value.write.2
west.value.release
end
display.value.read.2
right
‹ Konzepte
z Prozeß Interferenz
z Wechselseitiger Ausschluß
‹ Modellierung und Analyse mit FSPs
z Komposition mit TEST Prozeß,
somit Abbildung des Fehlers auf Deadlock
z Erschöpfende Suche
z Allgemeiner: Zustandsraumexploration
z Minimierung mittels Bisimulation
Mittels TEST und LTSA erschöpfende Suche:
Analyse von nebenläufigen Prozessen
Ist TEST erfüllt?
9
COUNTER: Abstraktion mittels Action Hiding
const N = 4
range T = 0..N
Analyse von nebenläufigen Prozessen
10
COUNTER: Abstraktion mittels Action Hiding
Um geteilte Objekte direkt
durch die synchronisierten
Aktionen zu modellieren,
verwenden wir Hiding.
VAR = VAR[0],
SyncCounter verbirgt
VAR[u:T] = ( read[u]->VAR[u]
read, write, acquire und
| write[v:T]->VAR[v]).
release Aktionen.
LOCK = (acquire->release->LOCK).
Minimiertes
LTS:
increment
0
increment
1
increment
2
increment
3
4
Es existiert eine abstraktere, einfachere Beschreibung
eines COUNTER Prozesses mit gleichem LTS:
COUNTER = COUNTER[0]
COUNTER[v:T] = (when (v<N) increment -> COUNTER[v+1]).
INCREMENT = (acquire->read[x:T]
-> (when (x<N) write[x+1]
->release->increment->INCREMENT
)
)+{read[T],write[T]}.
Beide zeigen ein “äquivalentes” Verhalten in dem Sinne,
daß ein Beobachter keinen Unterschied feststellen kann.
||COUNTER = (INCREMENT||LOCK||VAR)@{increment}.
Analyse von nebenläufigen Prozessen
11
Analyse von nebenläufigen Prozessen
12
Wann sind zwei Prozesse äquivalent ?
Welche Prozesse sind sinnvollerweise äquivalent?
‹ Wenn es eine bijektive Abbildung zwischen Zuständen gibt, so daß die
Zustandsbeschreibungen syntaktisch gleich sind?
z Impliziert gleiche Übergänge wg Ableitungsregeln
z Sehr strenge Anforderung, keine Minimierung möglich
z daher nicht weiter betrachtet
‹ Wenn LTS jeweils isomorph sind?
‹ Wenn ein Beobachter keine Unterschiede des Verhaltens feststellen kann?
z Führt zu weiteren Detailfragen
1. Versuch: P und Q äquivalent falls für alle Folgen von
*
Transitionsbezeichnern t ∈ Act gilt:
t
P⎯
⎯→
Problem:
in einer Umgebung in der b nach a verlangt wird,
könnte Q einen Deadlock haben, P dagegen nicht.
‹ Welche Aktionen kann ein Beobachter beobachten, i.w. Tau-Operationen
relevant oder nicht.
‹ Anforderungen an Genauigkeit der Beobachtung, d.h. was sind
Unterschiede? Z.B sollen Deadlocks erkennbar sein?!
‹ Sollen äquivalente Prozesse sich auch durch Komposition, Hiding,
Relabeling, Choice nicht unterscheiden lassen (Kongruenz) ?
Analyse von nebenläufigen Prozessen
P
13
Welche Prozesse sind sinnvollerweise äquivalent?
b
a
Q
a
b
Q
b
a
a
Analyse von nebenläufigen Prozessen
14
3. Versuch (informal): P und Q äquivalent
gdw für alle Transitionsbezeichner a gilt:
falls P einen Übergang mit a zu P´aufweist,
dann existiert in Q ein Übergang mit a zu einem Q´,
so daß P´ und Q´ äquivalent sind, und umgekehrt.
Problem:
zu restriktiv, untenstehende Prozesse sollten als äquivalent
angesehen werden.
a
a
Welche Prozesse sind sinnvollerweise äquivalent?
2. Versuch: P und Q äquivalent falls zugehörige LTS isomorph
P
t
Q⎯
⎯→
gdw
b
Diese Version ist R. Milners starke Bisimulation,
bei Magee&Kramer starke semantische Äquivalenz.
b
Starke Äquivalenz betrachtet alle Transitionsbezeichner
gleichermaßen, auch τ
b
Starke Äquivalenz ist eine Kongruenz bzgl Komposition, Relabeling
und Hiding.
Starke Äquivalenz bietet wenig Spielraum für Minimierung.
Analyse von nebenläufigen Prozessen
15
Starke semantische Äquivalenz
gleiches Alphabet,
eindeutiger ERROR Zustand,
wechselseitiges Simulieren bei
äquivalenten Nachfolgezuständen
P⎯
⎯→ P´ impliziert ∃Q´, Q ⎯
⎯→ Q´ und
( P´, Q´) ∈ R
a
a
Q⎯
⎯→
Q´ impliziert ∃P´, P ⎯
⎯→
P´ und
( P´, Q´) ∈ R
a
Analyse von nebenläufigen Prozessen
a
16
Beispiel für starke semantische Äquivalenz
Definition:
Sei℘ die Menge aller LTS.
Starke semantische Äquivalenz „~“ ist die Vereinigung aller Relationen
R ⊆ ℘×℘ , die die folgende Anforderung erfüllen:
falls ( P, Q ) ∈ R dann gilt:
1. αP = αQ
2. P = Π gdw Q = Π
3. ∀a ∈ Act :
Analyse von nebenläufigen Prozessen
P
a
b
Q
a
a
b
b
P = (a->b->STOP).
Q = (a->B | a-> C),
B = (b->STOP),
C = (b->STOP| b->STOP) .
Sind folgende Prozesse stark äquivalent?
X = (x->Y),
Y = (y->X)\{y}.
17
b
Analyse von nebenläufigen Prozessen
Z = Q /{x/a}\{b}
18
Äquivalenztest für Prozesse
Vorüberlegungen
‹ Unter Verwendung zugehöriger LTS
‹ Betrachte Vereinigung beider LTS
( S P ∪ S Q , S 0 P ∪ S 0Q , AP ∪ AQ , ∆ P ∪ ∆ Q , X P ∪ X Q , p)
z berechne gröbste Partition bzgl „~“ mittels Partition Refinement
Welche Anforderungen stellt Äquivalenz an Partition?
Für einen Block X gilt:
Algorithmus (Paige/Tarjan 1987)
z falls die initialen Zustände aus beiden LTS im gleichen Block liegen, sind
{S 0 P , S 0Q } ⊆ B
die Prozesse äquivalent i.S. von „~“
Beobachtung: Äquivalenz entspricht Äquivalenzrelation auf S
• reflexiv, symmetrisch, transitiv
• Äquivalenzklassen entsprechen Blöcken einer Partition
• Jedes x aus X hat Übergänge mit gleichen Transitionsbezeichnern
• Wenn ein x aus X einen Übergang mit Bezeichner t in ein y aus einer
Teilmenge Y hat,
so muss jedes Element aus X einen t-Nachfolger in Y haben.
Trivial: feinste Partition mit einelementigen Mengen erfüllt Anforderung!
Triviale Partition P = {S} erfüllt Anforderungen i.d.R. nicht.
Analyse von nebenläufigen Prozessen
19
Zentrale Operation a-split(a,X,P)
Analyse von nebenläufigen Prozessen
Zentrale Operation split(X,P)
Sei X Teilmenge von S, P eine Partition von S und B Element aus P,
a ein Transitionsbezeichner aus A.
Sei X Teilmenge von S, P eine Partition von S und B Element aus P,
a ein Transitionsbezeichner aus A.
a-split(a,X,P) ist eine Operation,
die eine Verfeinerung von P liefert,
ggfs jeden Block B aus P durch zwei disjunkte Blöcke B´und B´´ ersetzt
split(X,P) ist eine Operation,
• die eine Verfeinerung von P liefert,
• die für jeden Transitionsbezeichner a
eine Operation a-split(a,X,P) durchführt
B´= B ∩ ∆−a1 ( X )
20
B´´= B \ B´
Dadurch werden neue Blöcke B´,B´´ bzgl X stabil.
X heißt Splitter.
Einfache Wahl von X: beliebiger Block C. (völlig ausreichend)
mögliche Verbesserung: Vereinigung von Blöcken.
Analyse von nebenläufigen Prozessen
Definition: Sei B ⊆ S , X ⊆ S
−1
−1
Block B ist stabil bzgl X falls B ⊆ ∆ ( X ) oder B ∩ ∆ ( X ) = {}
Eine Partition ist stabil bzgl X falls alle Blöcke stabil bzgl X sind.
Partition P ist stabil, wenn sie stabil bzgl aller Blöcke ist.
21
Beispiel split(X,P) für nur einen Bezeichner a
X
Analyse von nebenläufigen Prozessen
22
Eigenschaften von split(X,P)
X
B´
B´
‹ Stabilität bleibt bei Verfeinerung erhalten („Vererbung“)
z falls R eine Verfeinerung von P ist und P stabil bzgl X ist, so ist dies auch R
‹ Stabilität bleibt bei Vereinigung erhalten
B´´
B´´
z falls eine Partition stabil bzgl X und Y ist, so ist sie dies auch bzgl X ∪ Y
‹ Funktion split(X,P) ist monoton bzgl des zweiten Argumentes
C´´
z falls Q Verfeinerung von P, dann ist split(X,Q) Verfeinerung von split(X,P)
C´´
C´
‹ Funktion split(X,P) ist kommutativ
C´
Resultierende Partition ist stabil
bzgl X weil alle Blöcke aus dem Vorbereich
von X nur Elemente haben, die mit einer
Kante X erreichen.
Analyse von nebenläufigen Prozessen
23
z Die gröbste Partition von P, die stabil bzgl X und Y (aus S) ist, ist
split( X, split(Y,P)) = split( Y, split(X,P))
Analyse von nebenläufigen Prozessen
24
Berechnung einer gröbsten Partition
Ziel erreicht: Äquivalenztest für Prozesse
Vorgehen:
• initiale Partition P ={S}
• bilde Extrablock für Deadlock Zustände (nicht weiter berücksichtigt)
• while ( P nicht stabil)
• Finde Splitter X aus der Vereinigung von Blocks in P
• Ersetze P durch split(X,P).
‹ Betrachte Vereinigung beider LTS
( S P ∪ S Q , S 0 P ∪ S 0Q , AP ∪ AQ , ∆ P ∪ ∆ Q , X P ∪ X Q , p)
z berechne gröbste Partition bzgl „~“ mittels Partition Refinement
Algorithmus (Paige/Tarjan 1987)
• Auswahl eines Splitters:
• nur 1 Block völlig ausreichend
• Kandidatenmenge, in die neu erzeugte Blocks jeweils aufgenommen
werden
Theoretisch effizientere Version nach Paige/Tarjan 1987:
• intelligentere Art Splitter zu ermitteln
• verwendet zwei Partitionen, verwendet „kleinere Hälfte“
• Laufzeit O (| ∆ | log | S |)
Analyse von nebenläufigen Prozessen
25
Weiteres Ziel erreicht: Minimierung für Prozesse
z falls die initialen Zustände aus beiden LTS im gleichen Block liegen, sind
{S 0 P , S 0Q } ⊆ B
die Prozesse äquivalent i.S. von „~“
Analyse von nebenläufigen Prozessen
26
Schwache semantische Äquivalenz
a
aτ
Bezeichne P ⇒ P´ die Übergangsfolge P ⎯τ⎯
⎯→ P´
Mit beliebig vielen (auch 0) Tau-Übergängen.
Definition:
Sei℘ die Menge aller LTS, ε die leere Sequenz.
Schwache semantische Äquivalenz „ ≈“ ist die Vereinigung aller Relationen
R ⊆ ℘×℘ , die die folgende Anforderung erfüllen:
falls ( P, Q ) ∈ R dann gilt:
‹ Betrachte LTS des Prozesses
z berechne gröbste, stabile Partition bzgl „~“ mittels Partition Refinement
Algorithmus (z.B. Paige/Tarjan 1987)
z betrachte Quotienten, d.h. definiere neues (minimales) LTS
‹ein Zustand entspricht einer Äquivalenzklasse(Block) im Ursprungs-LTS
‹Zustandsübergänge falls im Ursprungs-LTS entsprechende Übergänge
‹ Mehrfachübergänge werden nur einmal betrachtet (Relation)
3.
‹ Klasse mit Anfangszustand im Original-LTS wird initialer Zustand
∀a ∈ ( Act \ {τ }) ∪ {ε } :
a
P ⇒ P´
impliziert
a
Q ⇒ Q´ impliziert
27
Beispiel für schwache semantische Äquivalenz
B
a
b
D
A
b
C
a
b
≈
b
a
∃P´, P ⇒ P´
und
( P´, Q´) ∈ R
und
( P´, Q´) ∈ R
Analyse von nebenläufigen Prozessen
‹ Sei D Übergangsmatrix zu Relation
28
∆ mit D = ∑ D a
‹ Berechne transitiven Abschluß auf Dτ* = I + Dτ
a∈ A
z Warshall in O (| S |3 )
‹ Ersetze Übergangsmatrizen für einzelne Labels D a ´= Dτ D a Dτ
*
C
a
τ
∃Q´, Q ⇒ Q´
Algorithmus für schwache semantische Äquivalenz
B
A a
a
*
gleiches Alphabet,
eindeutiger ERROR Zustand,
wechselseitiges Simulieren bei
äquivalenten Nachfolgezuständen
1. αP = αQ
2. P = Π gdw Q = Π
existieren
Analyse von nebenläufigen Prozessen
*
‹ Berechne maximale Partition mit Partition refinement auf
*
D´= ∑ D a ´
a∈ A
P ≈τ− > P
a
P
b
Analyse von nebenläufigen Prozessen
≈
a
Q
τ
Bemerkung: gleiches Vorgehen läßt sich formal unterschiedlich notieren
a) mit gerichteten Graphen,
b) mit Relationen,
c) mit Matrizen
b
29
Analyse von nebenläufigen Prozessen
30
Kongruenz
Weitere Äquivalenzen
‹ Weak Observational Congruence
z wesentliches Resultat bei R. Milner
z Ergänzung zu schwacher Bisimulation
Starke und schwache semantische Äquivalenz sind eine Kongruenz
bzgl Komposition, Hiding und Relabeling. (Problem ist Choice!)
D.h. äquivalente Teilmodelle sind austauschbar,
• sofern sie in einem Gesamtmodell verwendet werden,
• das aus der (im wesentlichen) Komposition von Teilmodellen
erstellt wird,
• ohne daß ein unterschiedliches Verhalten im Sinne einer
starken/schwachen Äquivalenz festgestellt werden kann.
‹ Übergänge dürfen bei Simulation nur um Tau-Übergänge ergänzt werden
‹ es werden nur direkte Übergänge betrachtet (keine Sequenzen)
‹ Nachfolgezustände müssen nur schwach bisimulativ sein
Implikation für Divide&Conquer Strategie zur Analyse:
Für ein Modell aus Prozessen mit Komposition,
berechne für jeden Prozeß einzeln einen minimalen äquivalenten Prozeß,
ersetze Prozesse durch minimale Prozesse,
minimiere gemäß Schachtelung aus Komposition,Hiding,Relabeling
komponierte Prozesse.
Analyse von nebenläufigen Prozessen
31
Zusammenfassung
‹ Interne Tau-Operationen durch Hiding
z Potential zur Vereinfachung, zur Abstraktion, zur Kapselung
‹ Unterschiedliche Definitionsmöglichkeiten von „Äquivalenz“
z Starke semantische Äquivalenz, starke Bisimulation
z Schwache semantische Äquivalenz, schwache (Beobachtungs-)
Äquivalenz
‹ Kongruenz - Ersetzbarkeit/Einsetzbarkeit von äquivalenten Teilmodellen
‹ Minimierung eines LTS durch Äquivalenzklassenbestimmung
z Partition Refinement ausgehend von trivialer Partition für LTS
‹ Äquivalenztest für zwei LTS
z Vereinigung beider LTS, Äquivalenzklassenbestimmung, initiale
Zustände müssen in einer Klasse liegen
‹ Partition Refinement Algorithmus
z Schrittweise Verfeinerung einer Partition, Ziel: stabile Partition
‹ Transitiver Abschluß, Erweiterung des LTS um Tau-Sequenzen
Analyse von nebenläufigen Prozessen
33
‹ Trace Equivalence
z Gleichheit erzeugter Sequenzen von Transitionsbezeichnern
z Klassisch in Automatentheorie
z Problem sind Deadlocks!
‹ Failure Equivalence
z kann Deadlocks unterscheiden, liegt zwischen Weak Bisimulation und
Trace Equivalence
‹ ...
Analyse von nebenläufigen Prozessen
32
Herunterladen