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 | hx, 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