Synchrone Kommunikation - Software and Systems Engineering
Transcription
Synchrone Kommunikation - Software and Systems Engineering
Technische Universität München Modellierung verteilter Systeme Grundlagen der Programm- und Systementwicklung Sommersemester 2013 Prof. Dr. Dr. h.c. Manfred Broy Unter Mitarbeit von Dr. Alexander Malkis, Vasileios Koutsoumpas, Mario Gleirscher, Diego Marmsoler Lehrstuhl Software & Systems Engineering Broy SS 13: Modellierung verteilter Systeme 1 Technische Universität München Synchrone Kommunikation Broy SS 13: Modellierung verteilter Systeme 2 Technische Universität München Formen der Kommunikation Fragen im Zusammenhang mit Kommunikation Adressierung Über Identifikatoren der beteiligten Systeme (siehe OO) Über Kanäle oder Ports Über Vermittler (Konnektoren, Bussysteme, Black Boards, ...) Es existieren zwei grundlegend verschiedene Konzepte von Kommunikation (Nachrichtenaustausch) asynchron: Nachricht wird gesendet (unabhängig von der Bereitschaft des Empfängers zum Empfangs): Senden und Empfangen sind eigenständige Aktionen; Senden ist unabhängig vom Empfangen, aber kausal für Empfangen synchron: Nachricht wird gesendet, wenn der Empfänger bereit zum Empfang ist: Nachrichtenaustausch erfolgt als Übergabe in einer gemeinsamen Aktion Broy SS 13: Modellierung verteilter Systeme 3 Technische Universität München Asynchrone Kommunikation Senden ist immer möglich, wenn zu sendende Nachricht vorliegt braucht nicht mit dem Empfänger abgestimmt werden Übertragen kann über Ketten von Übertragungsschritten erfolgen Kein Deadlock möglich (nur zyklisches Warten auf Nachrichten) Gesendete Nachrichten müssen gepuffert werden, bis Empfänger empfangsbereit ist werden u.U. nie empfangen/abgerufen Sender kann unabhängig von der Empfangsbereitschaft seine Aktivität fortführen erfährt nichts über den Zustand des Empfängers oder ob dieser die Nachricht abruft Empfänger Kann Nachricht empfangen, sobald sie vorliegt Broy SS 13: Modellierung verteilter Systeme 4 Technische Universität München Synchrone Kommunikation Senden ist nur möglich, wenn Empfänger empfangsbereit ist muss mit dem Empfänger abgestimmt werden Übertragen muss (zumindest logisch) direkt erfolgen Deadlock möglich (Warten auf Sende/Empfangsbereitschaft) Gesendete Nachrichten müssen nicht gepuffert werden werden sicher empfangen Sender muss ggf. warten - kann nicht unabhängig von der Empfangsbereitschaft seine Aktivität fortführen erfährt etwas über den Zustand des Empfängers und dass der Empfänger die Nachricht abgerufen hat Empfänger muss ggf. warten - kann Nachricht empfangen, sobald Sender sendebereit ist Broy SS 13: Modellierung verteilter Systeme 5 Technische Universität München Synchrone Kommunikation Erfordert das Konzept gemeinsamer Aktionen Historische Beiträge CSP von Hoare CCS von Milner weitere Prozessalgebren Broy SS 13: Modellierung verteilter Systeme 6 Technische Universität München Zustandsmaschinen mit gemeinsamen Aktionen Wir betrachten Zustandsmaschinen mit aktionsmarkierten Übergängen Zustandsmenge , Aktionsmenge A Anfangszuständen 0 Zustandsübergangsrelation Δ: A IB für (, a, ‘) Δ schreiben wir kurz a Die Aktionsmenge A sei in zwei disjunkte Mengen gegliedert lokale Aktionen gemeinsame Aktionen Broy SS 13: Modellierung verteilter Systeme 7 Technische Universität München Synchrone Automaten Basis: Menge von Automaten mit markierten Übergängen Δi: Σi×Ai → ℘(Σi) Zusätzlich: Menge von Endzuständen ie | a Αi : i ( , a) Ø Komposition von zwei Automaten zu einem synchronen Automaten Δ = Δ1|||Δ2: (Σ1×Σ2)×A → ℘(Σ1×Σ2) Broy SS 13: Modellierung verteilter Systeme 8 Technische Universität München Synchrone Automaten Annahmen: A1∩A2 = ∅ keine gemeinsame Aktionen A i A si A ia Zerlegung der Aktionsmenge in synchrone und asynchrone Aktionen (i∊{1,2}) h : A1s As2 Bool Prädikat, das spezifiziert, welche Aktionen gemeinsam (synchron) ausgeführt werden Aktionsmenge des synchronen Automaten A A1a A a2 x, y A1s A s2 | hx, y Broy SS 13: Modellierung verteilter Systeme 9 Technische Universität München Synchrone Automaten Die Grundidee ist, dass die synchronen Aktionen durch die Automaten in dem zusammengesetzten Automaten gemeinsam ausgeführt werden (müssen) Broy SS 13: Modellierung verteilter Systeme 10 Technische Universität München CSP - Syntax Broy SS 13: Modellierung verteilter Systeme 11 Technische Universität München CSP - Syntax - Kommunikation in Wächtern Dabei können die Bedingungen Gi von bewachten Anweisungen und Wiederholungsanweisungen folgende syntaktische Form annehmen (Ci sei ein Boolescher Ausdruck und c sei ein Kanalname): Broy SS 13: Modellierung verteilter Systeme 12 Technische Universität München CSP – Beispiel: Puffer Da in CSP keine Kanäle mit impliziten Puffern (wie bei asynchroner Kommunikation) verwendet werden, müssen Puffer explizit formuliert werden. Ein endlicher Puffer mit maximaler Länge bound wird in CSP wie folgt beschrieben. P(in: Chan Data, out: Chan Data) = { q: var Queue Data; x: var Data; q := <>; do ¬isempty(q): out ! first(q) then q := rest(q) [] |q|<bound : in ? x then q := enq(q,x) od } Broy SS 13: Modellierung verteilter Systeme 13 Technische Universität München CSP – Beispiel: Verkaufsautomat Kanäle: wahl, warenaus : Chan Ware geldein, geldaus : Chan Nat ausgabe, rückgabe : Chan Signal Broy SS 13: Modellierung verteilter Systeme 14 Technische Universität München Verklemmung in CSP In CSP stellt jeder Nachrichtenaustausch eine unteilbare Aktion dar. Nicht zusammenpassende Aktionen können zu einer Verklemmung führen Betrachte folgendes Programm: Der linke Prozess wartet auf einen Empfänger einer Nachricht auf Kanal x, der rechte Prozess wartet auf einen Empfänger einer Nachricht auf Kanal y Keine Verklemmung des obigen Programms bei asynchroner Kommunikation Broy SS 13: Modellierung verteilter Systeme 15 Technische Universität München Operationelle Semantik von CSP Broy SS 13: Modellierung verteilter Systeme 16 Technische Universität München Operationelle Semantik von CSP: Senden/Empfangen Operationelle Semantik durch Axiomatisieren der Übergangsfunktion: Broy SS 13: Modellierung verteilter Systeme 17 Technische Universität München Operationelle Semantik von CSP: Seq. Komposition Broy SS 13: Modellierung verteilter Systeme 18 Technische Universität München Operationelle Semantik von CSP: Kommunikation Broy SS 13: Modellierung verteilter Systeme 19 Technische Universität München Operationelle Semantik von CSP: Parallelität Zur Anzeige wird der QuickTime™ Dekompressor „“ benötigt. Broy SS 13: Modellierung verteilter Systeme 20 Technische Universität München Operationelle Semantik von CSP Die Semantik von Wiederholung und Zuweisung ist wie für sequentielle Programme definiert. Wiederholung: Habe DO ≡ do ... [] Gi then Si [] ... od n Wächter. Dann gilt: (DO, σ) → (if ... [] Gi then Si;DO ... [] ¬C1∧...∧¬Cn then nop fi, σ), wobei Ci der Boolesche Ausdruck im Wächter Gi sei (1≤i≤n). Zuweisung: (x:=E, σ) → (nop, σ[ valσ[E] / x ] ) Broy SS 13: Modellierung verteilter Systeme 21 Technische Universität München Operationelle Semantik von CSP: Verklemmung Broy SS 13: Modellierung verteilter Systeme 22 Technische Universität München Operationelle Semantik von CSP Broy SS 13: Modellierung verteilter Systeme 23 Technische Universität München Bereitschaft und Verweigerung R ⊆ (M\{ε}) heißt Bereitschaftsmenge für einen Ablauf s ∈ (M\{ε})* und eine Konfiguration (t,σ), wenn eine Konfiguration (t‘,σ‘) existiert, so dass s m t , t ' , ' t ' ' , ' ' : t ' , ' t ' ' , ' ' m R gilt. Eine leere Bereitschaftsmenge charakterisiert die Situation der Verklemmung. Jede Menge, die mit mindestens einer Bereitschaftsmenge einen leeren Durchschnitt bildet, heißt Verweigerungsmenge. Broy SS 13: Modellierung verteilter Systeme 24 Technische Universität München Bemerkungen zu CSP und synchroner Kommunikation Semantik sehr kompliziert Schnittstellenspezifikation trickreich Zur Äquivalenz/Kompatibilität von CSP-Programmen siehe nächsten Foliensatz Stichwort Bisimulation Kommunikationsmodell entspricht nicht heutigen Systemen mit asynchroner Kommunikation Internet Client/Server Bordnetze in Fahr- und Flugzeugen Als Abstraktion dennoch manchmal hilfreich Broy SS 13: Modellierung verteilter Systeme 25