Prozessalgebren (CCS & CSP) Vortragender: Tim Michaelis
Begriffsklärung: Prozess Prozess = Abfolge von Aktionen = Aufeinanderfolge von Zuständen Äussere Eigenschaften sequentiell oder parallel? kooperierend oder konkurrierend? Prozeßalgebren 2
Prozesskommunikation (Datenaustausch) Kommunikation Synchronisation über gemeinsam genutzte Datenbereiche über Nachrichten (Operationen: Senden / Empfangen) Prozeßalgebren 3
Kommunikationsarten asynchron: Nachrichtenpuffer Sende- und Empfangsaktion zu unterschiedlichen Zeitpunkten synchron: Sende- und Empfangsaktion als eine gleichzeitige Aktion Prozeßalgebren 4
Begriffsklärung: Prozessalgebra Prozessalgebra = algebraische Modellierung von parallelen Prozessen besteht aus elementaren (atomaren) Aktionen Verknüpfung von Aktionen über Operationen Prozeßalgebren 5
Begriffsklärung: elementare Aktion = Prozess, dessen Verhalten nicht weiter detailliert als bis auf Aktion wird ausgeführt Aktion hält an Prozeßalgebren 6
Wozu Prozessalgebren? Darstellung komplexer Systeme mit Hilfe weniger Operationen ermöglicht automatische Verifikation Hintergrund: gewachsene Komplexität von verteilten und parallelen Systemen Prozeßalgebren 7
Prozessalgebren: Ansätze CCS (Calculus of Communicating Systems) [Milner '80] CSP (Communicating Sequential Processes) [Hoare '85] ACP (Algebra of Communicating Processes) [Bergstra & Klop '84] LOTOS (Language of Temporal Ordered Specification) [Brinksma & Draft '88] u.v.m Prozeßalgebren 8
Heute: CCS (Calculus of Communicating Systems)
Agenten-Modell Mögliche Aktionen Interaktion mit Nachbar-Agenten Kommunikation (sychnron, d.h. Handshake) unabhängige Aktion paralle Aktion Prozeßalgebren - Teil 1 (CCS) 10
Ziele von CCS Modellierung der Kommunikation zwischen Agenten = Beschreibung des Verhaltens des Systems Untersuchung auf Äquivalenzen von Agenten Prozeßalgebren - Teil 1 (CCS) 11
Wie sieht ein Agent aus (Bsp.)? Kommunikation Labels für Port in A out Agenten-Label Port Prozeßalgebren - Teil 1 (CCS) 12
Verhalten des Beispiel-Agenten A in A out Angenommen, A kann einen Wert aufnehmen: A = in(x).a (x) A (x) = out(x).a A = in(x).out(x).a Präfix Prozeßalgebren - Teil 1 (CCS) 13
Gültigkeitsbereich von x A = in(x).a (x) A (x) = out(x).a innerhalb Ausdruck gültig durch Input Präfix innerhalb Gleichung gültig durch formalen Parameter nie über eine Gleichung hinaus Prozeßalgebren - Teil 1 (CCS) 14
CCS-Operationen Prefix (hatten wir schon, durch.) Summation (durch +) Composition (durch ) Restriction (durch \) Relabelling Prozeßalgebren - Teil 1 (CCS) 15
CCS-Operation: Summation = non-deterministische Auswahl aus Aktionen Beispiel Schokoladen-Automat Einwurf 1 EUR Ausgabe kl. Schokolade Einwurf 2 EUR Ausgabe gr. Schokolade SchA = 1EUR.klSch.SchA + 2EUR.grSch.SchA Prozeßalgebren - Teil 1 (CCS) 16
CCS-Operation: Composition 2 Agenten arbeiten unabhängig oder interagieren über komplementäre Ports Beispiel Hammer-Arbeiter geth geth inaufgabe Hammer Arb_1 puth puth outaufgabe Hammer Arb_1 Prozeßalgebren - Teil 1 (CCS) 17
CCS-Operation: Restriction (1) Beispiel Hammer-Arbeiter erweitert geth inaufgabe Arb_2 geth puth geth outaufgabe inaufgabe Hammer Arb_1 puth puth outaufgabe Prozeßalgebren - Teil 1 (CCS) 18
CCS-Operation: Restriction (2) inaufgabe Arb_2 outaufgabe inaufgabe Hammer Arb_1 outaufgabe Prozeßalgebren - Teil 1 (CCS) 19
CCS-Operation: Restriction (3) Restriction sperrt Ports Limitierung der Nutzung ((Arb_1 Arb_2) Hammer) \ {geth, puth} Auch komplementäre Ports verschwinden (= internisiert) Prozeßalgebren - Teil 1 (CCS) 20
CCS-Operation: Relabelling (1) Beispiel Hammer = geth.puth.hammer Bohrer = getb.putb.bohrer Beides Werkzeug Könne sie als Instanzen davon gesehen werden? Prozeßalgebren - Teil 1 (CCS) 21
CCS-Operation: Relabelling (2) Sei z ein Label. f ist Relabelling Function, gdw. wenn gilt: f(z) = z f(z) = z Schreibeweise: Agent[z1 /z1, z2 /z2...] Prozeßalgebren - Teil 1 (CCS) 22
CCS-Operation: Relabelling (3) Hammer = geth.puth.hammer Bohrer = getb.putb.bohrer Neuer Agent: Semaphore Sem = get.put.sem Neue Definition Hammer = Sem[getH/get, puth/put] Bohrer = Sem[getB/get, putb/put] Prozeßalgebren - Teil 1 (CCS) 23