Organisatorisches Einf¨ uhrung Transitionssysteme B¨ uchi-Automaten Prozesskalk¨ ule Petrinetze Graphtransformation Vorlesung “Modellierung nebenl¨ aufiger Systeme” Sommersemester 2011 Universit¨ at Duisburg-Essen Barbara K¨ onig Barbara K¨ onig Vorlesung “Modellierung nebenl¨ aufiger Systeme” 1 Organisatorisches Einf¨ uhrung Transitionssysteme B¨ uchi-Automaten Prozesskalk¨ ule Petrinetze Graphtransformation Prozesskalk¨ ule: Motivation Mir besch¨ aftigen uns nun mit sogenannten Prozesskalk¨ ulen, das sind “Mini-Programmiersprachen”, mit denen man interagierende Prozesse beschreiben kann. Nutzen von Prozesskalk¨ ulen Programmiersprache, mit der man Systeme modular aus Prozessen aufbauen kann Studium von Interaktion, Parallelit¨ at, Modularit¨ at Einfachheit, um den Kalk¨ ul formal untersuchen und Analysetechniken aufstellen zu k¨ onnen (Trade-off zwischen der M¨ achtigkeit einer Sprache und ihrer Analysierbarkeit) Barbara K¨ onig Vorlesung “Modellierung nebenl¨ aufiger Systeme” 185 Organisatorisches Einf¨ uhrung Transitionssysteme B¨ uchi-Automaten Prozesskalk¨ ule Petrinetze Graphtransformation Prozesskalk¨ ule: Motivation Was gibt es in Prozesskalk¨ ulen? Kommunikation ¨ uber Kan¨ ale Interaktion mit der Umgebung/Reaktivit¨ at Parallele Komposition Verschatten von Aktionen gegen¨ uber der Umwelt Nicht-deterministische Verzweigungen Was gibt es (im allgemeinen) nicht in Prozesskalk¨ ulen? Datentypen (Integers, Booleans, . . . ) Sprachkonstrukte wie Funktionen, Prozeduren, Schleifen, . . . Dies kann jedoch (mit etwas Aufwand) simuliert werden, denn alle hier von uns betrachteten Prozesskalk¨ ule sind Turing-m¨ achtig. Barbara K¨ onig Vorlesung “Modellierung nebenl¨ aufiger Systeme” 186 Organisatorisches Einf¨ uhrung Transitionssysteme B¨ uchi-Automaten Prozesskalk¨ ule Petrinetze Graphtransformation Prozesskalk¨ ule: Motivation Welche Prozesskalk¨ ule gibt es? CCS (Calculus of Communicating Systems) – eingef¨ uhrt 1980 von Robin Milner CSP (Communicating Sequential Processes) – eingef¨ uhrt von Tony Hoare (dieser Kalk¨ ul enth¨ alt mehr primitive Operatoren und erlaubt – im Gegensatz zu CCS – auch Synchronisation von mehr als zwei Kommunikationspartnern.) π-Kalk¨ ul – enth¨ alt die M¨ oglichkeit, Kanalnamen als Inhalt von Nachrichten zu verschicken und damit die Topologie der Kommunikationsstruktur dynamisch zu ver¨ andern Barbara K¨ onig Vorlesung “Modellierung nebenl¨ aufiger Systeme” 187
24
Embed
Modellierung nebenl au ger Systeme Sommersemester 2011 ... fileCSP (Communicating Sequential Processes) { eingef uhrt von Tony Hoare (dieser Kalk ul enth alt mehr primitive Operatoren
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Mir beschaftigen uns nun mit sogenannten Prozesskalkulen, dassind “Mini-Programmiersprachen”, mit denen man interagierendeProzesse beschreiben kann.
Nutzen von Prozesskalkulen
Programmiersprache, mit der man Systeme modular ausProzessen aufbauen kann
Studium von Interaktion, Parallelitat, Modularitat
Einfachheit, um den Kalkul formal untersuchen undAnalysetechniken aufstellen zu konnen(Trade-off zwischen der Machtigkeit einer Sprache und ihrerAnalysierbarkeit)
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 185
CCS (Calculus of Communicating Systems) – eingefuhrt 1980von Robin Milner
CSP (Communicating Sequential Processes) – eingefuhrt vonTony Hoare (dieser Kalkul enthalt mehr primitive Operatorenund erlaubt – im Gegensatz zu CCS – auch Synchronisationvon mehr als zwei Kommunikationspartnern.)
π-Kalkul – enthalt die Moglichkeit, Kanalnamen als Inhalt vonNachrichten zu verschicken und damit die Topologie derKommunikationsstruktur dynamisch zu verandern
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 187
a.P steht fur eine Aktion a, gefolgt von Prozess P. Diesessyntaktische Konstrukt heißt auch Prafix. Es ist eineeingeschrankte Form der sequentiellen Komposition.
P1 + P2 steht fur nicht-deterministische Auswahl. DerTeilprozess Pi , der zuerst eine Aktion durchfuhrt, “gewinnt”und arbeitet weiter, der andere Teilprozess wird verworfen.
0 steht fur den inaktiven Null-Prozess, der keine Aktionenmehr ausfuhrt.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 190
Bei einer Umbenennung der Form [a/b, b/c] werden alleUmbenennungen “gleichzeitig” ausgefuhrt. Insbesonderewerden alle a’s zu b’s umbenannt (und nicht zu c ’s).
Dagegen beschreibt [a/b][b/c] die Hintereinanderausfuhrungzweier Umbenennungen, d.h., a wird zu c umbenannt.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 195
In CCS ist Kommunikation zunachst immer synchron, d.h., beideKommunikationspartner warten aufeinander (= Rendezvous) undmachen erst dann weiter, wenn der jeweils andere die Nachricht(bzw. die Aktion) empfangen hat:
a.P | a.Q τ→ P | Q
Asynchrone Kommunikation ist ebenfalls moglich, wenn einProzess abgespalten wird, der parallel lauft und dessen einzigerZweck es ist, die Nachricht zu verschicken:
(a.0 | P) | a.Q w→ (a.0 | P ′) | a.Q τ→ 0 | P ′ | Q,
falls Pw→ P ′. Das heißt, der Prozess P kann weiterarbeiten, bevor
Q die Nachricht empfangt.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 203
Wir abstrahieren vom Inhalt der Nachrichten, d.h., dieAktionen verraten nur, von welchem Typ die Nachricht ist(eigentliche Nachricht oder Bestatigung) und welcheSequenznummer (0 oder 1) mitgeschickt wird.
Von außen sollen nur die Aktionen accept und deliver sichtbarsein. Mit accept empfangt der Sender eine Nachricht derAnwendung, die zu verschicken ist, und mit deliver liefert sieder Empfanger an seine Anwendung aus.
Das unzuverlassige Kommunikationsmedium (der Kanal) wirdebenfalls durch einen Prozess modelliert, der die Nachrichtenentweder weitergeben oder verlieren kann.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 205
Im folgenden wollen wir uns vor allem damit beschaftigen, welcheProzesse das gleiche Verhalten zeigen, obwohl sie syntaktischverschieden sind. Als Verhaltensaquivalenz verwenden wir schwacheund starke Bisimularitat.
Bisimularitat von Prozessen (Definition)
Zwei CCS-Prozesse P,Q heißen (stark) bisimular (in Zeichen:P ∼ Q), wenn ihre Zustande in den Transitionssystemen von Pund Q (stark) bisimular sind.Analog ist schwache Bisimularitat (in Zeichen: P ≈ Q) definiert.
Bemerkung: Verweigerungsaquivalenz wird in CCS ublicherweisewenig benutzt, ist aber eine wichtige Verhaltensaquivalenz imProzesskalkul CSP.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 213
Motivation: wir wollen zeigen, dass die Prozesse A,B mit
A := a.(A | 0) B := a.B
stark bisimular sind.
Problem: die kleinste Bisimulation R, die das Paar (A,B) enthalt,ist unendlich groß, namlich:
R = {(A,B), (A | 0,B), (A | 0 | 0,B), (A | 0 | 0 | 0,B), . . . }
Kann man Bisimularitat auch mit einer endlichen Relation zeigen?
Idee: Wir betrachten die Relation R ′ = {(A,B)}. Das Paar(A | 0,B), das nach einem Schritt erreicht wird, ist “beinahe”schon in R ′ enthalten, denn es gilt A | 0 ∼ A (sogar: A | 0 ≡ A).
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 224
Wir betrachten nun sogenannte Up-To-Bisimulationen(“bisimulation up to . . . ” heißt ubersetzt “Bisimulation bis auf. . . ”). Wir sagen auch Modulo-Bisimulationen.
Man muss nun noch zeigen, dass diese Modulo-Bisimulationtatsachlich sinnvoll definiert ist.
Bisimulation modulo starke Bisimularitat (Satz)
Sei R eine Bisimulation modulo starke Bisimularitat. Dann gilt:R ⊆∼. Insbesondere gilt fur jedes Paar von Prozessen (P,Q) ∈ R,dass P ∼ Q.
Bemerkung: Dieser Satz ist auch dann noch korrekt, wenn in derDefinition der Bisimulation modulo starke Bisimularitat dieRelation ∼ R ∼ durch (∼ R ∼)∪ ∼ ersetzt wird. Das heißt, esreicht auch aus, ein Prozesspaar zu finden, das bereits als bisimularbekannt ist.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 227
Es ist unentscheidbar, ob zwei gegebene Prozesse P,Q (stark oderschwach) bisimular sind.
Intuition:
Prozesse konnen unendlich große Transitionssysteme haben,daher reicht es nicht aus, einfach alle moglichenBisimulationen “durchzuprobieren”.
CCS ist Turing-machtig, d.h., es kann Turing-Maschinensimulieren. Daher ist die Unentscheidbarkeit eine indirekteKonsequenz aus dem Satz von Rice (= es ist unentscheidbar,ob die von einer Turingmaschine berechnete Funktion einebestimmte nicht-triviale Eigenschaft hat).
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 232
Problem: Es ist moglich, dass durch den Austausch vonSubsystemen durch schwache bisimulare Subsysteme (= Prozesse)das Verhalten des Systems verandert wird.
Idee: die schwache Bisimularitat wird so weit verfeinert, dass sieeine Kongruenzrelation ist, d.h., unter den CCS-Operatorenerhalten bleibt.
Wiederholung: schwache Ubergange
Pτ⇒ Q gdw. P
ε⇒ Q gdw. P(τ→)∗Q
Pa⇒ Q gdw. P
a⇒ Q gdw. P(τ→)∗ a→ (
τ→)∗Q fur a 6= τ
Wir definieren nun eine Folge von mindestens einem τ -Ubergang:
Pτ⇒ Q gdw. P(
τ→)∗ τ→ (τ→)∗Q
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 236
Zwei Prozesse P,Q heißen beobachtungskongruent (in Zeichen:P ≈c Q, engl.: observationally congruent), falls fur jedes a ∈ Actgilt:
Fur jedes P ′ mit Pa→ P ′ gibt es ein Q ′ mit Q
a⇒ Q ′ undP ′ ≈ Q ′.Fur jedes Q ′ mit Q
a→ Q ′ gibt es ein P ′ mit Pa⇒ P ′ und
P ′ ≈ Q ′.
Bemerkung: Nur im ersten Schritt muss ein τ des einen Prozessesdurch mindestens ein τ des anderen Prozesses beantwortet werden.Danach wird schwache Bisimularitat (P ′ ≈ Q ′) gefordert.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 237
Werkzeug zur Simulation und Verifikation von CCS-Prozessen.
Zwei Versionen:
Edinburgh Concurrency Workbench(http://homepages.inf.ed.ac.uk/perdita/cwb/)Entwickelt von Perdita StevensConcurrency Workbench of the New Century(http://www.cs.sunysb.edu/~cwb/)Mit graphischer Benutzeroberflache und effizienterenAlgorithmen
Hinweise zur Syntax: ein Prafix a wird durch ′a dargestellt.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 240
Wir modellieren den Algorithmus von Lamport zum wechselseitigenAusschluss in CCS.
Dabei betrachten wir: zwei Prozesse P1, P2 mit unterschiedlichemProgrammcode, die beide den kritischen Bereich betreten wollen,und zwei Boolesche Variable f1, f2 (initialisiert mit false).
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 245
Ein Kontext C [ ] ist ein Prozess, der an genau einer Stelle statteines Sub-Prozesses das Zeichen (= Unterstrich) enthalt. DiesesVorkommen von wird auch als Platzhalter bezeichnet.
Mit C [P] bezeichnet man den Kontext C [ ], bei dem das Zeichendurch P ersetzt wurde.
Beispiele:
a.P + + b.Q
(a.P | )\{a}[f ]
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 253
Sei R eine Bisimulation modulo Kontext. Dann gilt: R ⊆∼.Insbesondere gilt fur jedes Paar von Prozessen (P,Q) ∈ R, dassP ∼ Q.
Beweis (Skizze): Man zeigt direkt, dass die Relation R aus dervorherigen Definition eine Bisimulation ist. Dazu benotigt manunter anderem die Tatsache, dass Bisimularitat eine Kongruenz ist.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 256
Das bedeutet, es reicht bei Bisimulationsbeweisen aus, zuuberprufen, dass die Nachfolgerprozesse in der Relation R sind,moglicherweise mit zusatzlichem (aber identischem) Kontext.(Diese Techniken ist auch mit anderen Modulo-Technikenkombinierbar.)
Beispiel:
P mit P := a.(P | P)
Q mit Q := a.(Q | P)
Zu zeigen: R = {(P,Q)} ist eine Bisimulation modulo Kontext.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 257
Wir suchen nun weitere Gesetze bzw. Axiome furVerhaltensaquivalenzen, sowohl fur starke Bisimularitat, als auchfur Beobachtungskongruenz.
Bereits bekannt:
P ≡ Q ⇒ P ∼ Q.
P ∼ Q ⇒ P ≈c Q.
Sowohl starke Bisimularitat als auch Beobachtungskongruenzsind Kongruenzrelationen.
Eine Axiomatisierung ist nur dann sinnvoll, wenn es sich um eineKongruenzrelation handelt, ansonsten konnen Teilprozesse nichtdurch verhaltensaquivalente Teilprozesse ersetzt werden.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 258
Alle obigen Gesetze (auch Axiome genannt) sind korrekt fur diestarke Bisimularitat bzw. Beobachtungskongruenz. Man kannjedoch auch folgende Frage stellen:
Gegeben seien zwei Prozesse P,Q mit P ∼ Q (bzw. P ≈c Q).Kann man die Verhaltensaquivalenz von P und Q nur durchAnwendung der Gesetze nachweisen?
Eine Axiomatisierung, die diese Eigenschaft erfullt, heißtvollstandig.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 264
Vollstandigkeit fur ∼Seien P,Q zwei Prozesse in CCSfin mit P ∼ Q. Dann kann diestarke Bisimularitat von P und Q unter Verwendung folgenderGesetze nachgewiesen werden:
Uberfuhre zunachst beide Prozesse P,Q in ihre Normalformdurch
Entfernen der parallelen Komposition (Expansionsgesetz)Entfernen der Verschattung und Umbenennung(Verschattung und Umbenennung mit Hilfe derentsprechenden Gesetze ganz nach innen schieben)
Die so entstehenden Prozesse enthalten nur noch 0, Summeund Prafix.
Zeige, dass die Bisimularitat von Prozessen in Normalformdurch die Anwendung der Gesetze fur die strukturelleKongruenz nachgewiesen werden kann.
Barbara Konig Vorlesung “Modellierung nebenlaufiger Systeme” 267