Vorlesung Modellierung nebenläufiger Systeme Sommersemester 2012 Universität Duisburg-Essen Was sind nebenläufige Systeme? Ganz allgemein: Systeme, bei denen mehrere Komponenten/Prozesse nebenläufig arbeiten und typischerweise durch Nachrichtenaustausch miteinander kommunizieren. Das englische Wort für nebenläufig ist concurrent. Barbara König Übungsleitung: Henning Kerstan Barbara König Vorlesung Modellierung nebenläufiger Systeme 1 Barbara König Vorlesung Modellierung nebenläufiger Systeme 18 Nebenläufigkeit versus Parallelität: Parallelität Zwei Ereignisse finden parallel statt, wenn sie gleichzeitig ausgeführt werden. Nebenläufigkeit (engl. concurrency) Zwei Ereignisse sind nebenläufig, wenn sie parallel ausgeführt werden können (jedoch nicht müssen), das heißt, wenn zwischen ihnen keine kausale Abhängigkeit besteht. Das bedeutet: Nebenläufigkeit ist der allgemeinere Begriff. Beispiele Prozesswechsel auf einem Prozessor (Nebenläufigkeit, aber keine Parallelität) Rechner mit mehreren Prozessoren Netzwerk (LAN, WAN, Internet) Nebenläufige/parallele Anwendungen Hierbei ist zu unterscheiden: Parallelität zum Effizienzgewinn (Beispiel: paralleles Sortierverfahren) Nebenläufigkeit durch Nutzung verteilter Ressourcen (Beispiel: Verwendung von Web Services) Barbara König Vorlesung Modellierung nebenläufiger Systeme 19 Barbara König Vorlesung Modellierung nebenläufiger Systeme 20
(Mögliche) Charakteristika von nebenläufigen Systeme Nebenläufigkeit/Parallelität Offenheit (Erweiterbarkeit, Interaktion mit der Umgebung) Modularität Nicht-terminierendes Verhalten (unendlich lange Abläufe) Nicht-Determinismus Temporale Eigenschaften (z.b.: irgendwann wird etwas passieren ) Probleme beim Umgang mit nebenläufigen Systemen Deadlocks (Verklemmungen) Einhaltung des wechselseitigen Ausschlusses (engl. mutual exclusion) Unendlicher bzw. sehr großer Zustandsraum Stark dynamisches Verhalten/wechselnde Anzahl von Prozessen Variable Topologie/Mobilität Daher: Methoden zur Modellierung, Analyse und Verifikation solcher Systeme sind erforderlich. Barbara König Vorlesung Modellierung nebenläufiger Systeme 21 Barbara König Vorlesung Modellierung nebenläufiger Systeme 22 Wir betrachten das folgende System mit drei Prozessen P 0, P 1, P 2 : P 1 P 2 P 0 Dabei schickt P 0 Nachrichten an P 1, P 1 schickt Nachrichten an P 2 und P 2 schickt Nachrichten an P 0. Ein Prozess P i verhält sich wie folgt: Falls eine Nachricht für P i anliegt, so empfängt P i diese Nachricht (Aktion r i receive). Falls keine Nachricht für P i anliegt und auch keine Nachricht am Nachbarn P j (mit j = (i + 1) mod 3) anliegt, so sendet P i eine Nachricht an P j (Aktion s i send). Zu jedem Zeitpunkt kann ein beliebiger Prozess des Systems die nächste Aktion ausführen. Barbara König Vorlesung Modellierung nebenläufiger Systeme 23 Barbara König Vorlesung Modellierung nebenläufiger Systeme 24
(,, ) Beschreibung durch ein Transitionssystem: System-Zustände der Form (x, y, z) mit x, y, z {N, }. Beispiel: (N, N, ) bedeutet, dass an den Prozessen P 0 und P 1 jeweils eine Nachricht anliegt. Transitionen/Zustandsübergänge mit Aktionen r i (Prozess i liest eine Nachricht) und s i (Prozess i sendet eine Nachricht). (, N, ) s 2 r 0 s 0 (N, N, ) r 1 r 0 s 1 r 2 (,, N) s 0 r 2 r 1 (, N, N) s 2 (N,, ) s 1 r 0 r 2 (N,, N) r 1 Barbara König Vorlesung Modellierung nebenläufiger Systeme 25 Barbara König Vorlesung Modellierung nebenläufiger Systeme 26 Inhalt der Vorlesung Erweiterungen Was passiert, wenn man von als externer Beobachter Sendeoperationen untereinander und Empfangsoperationen untereinander nicht unterscheiden kann? Welche Zustände können dann als äquivalent angesehen werden? Zusätzlich: In oben beschriebenen System kann ein Fehler eintreten, der zur Folge hat, dass der Prozess P 0 keine Nachrichten mehr senden kann. Dieser Fehler kann immer direkt nach einer Sendeoperation von P 0 auftreten. Wie kann das Transitionssystem so erweitert werden, dass dieser Fehler berücksichtigt wird? Was passiert, wenn ein Prozess auch eine Nachricht schicken darf, wenn die vorherige Nachricht noch nicht empfangen wurde? Im folgenden werden wir zur Modellierung nebenläufiger Systeme einsetzen: Transitionssysteme (wie oben) Modelle, die näher an echten Programmiersprachen liegen (beispielsweise Prozesskalküle) Weitere Modelle: Petri-Netze, Graphtransformationssysteme Außerdem (zur Untersuchung/Analyse von Systemen): Beschreibung von Eigenschaften nebenläufiger Systeme Verhaltensäquivalenzen: Wann verhalten sich zwei Systeme gleich (aus der Sicht eines externen Beobachters)? Barbara König Vorlesung Modellierung nebenläufiger Systeme 27 Barbara König Vorlesung Modellierung nebenläufiger Systeme 28
Inhalt der Vorlesung Transitionssysteme Transitionssysteme Verhaltensäquivalenzen (Sprachäquivalenz, Bisimulation) Prozesskalküle (CCS, π-kalkül) Petri-Netze (Entfaltung von Netzen) Graphtransformationssysteme Bemerkung: Einige der bisher in der Vorlesung behandelten Themen (Sicherheits- und Lebendigkeitseigenschaften, Büchi-Automaten, LTL - Linear Temporal Logic) fallen weg. Transitionssysteme repräsentieren Zustände und Zustandsübergänge von Systemen. Echte Parallelität wird nicht direkt repräsentiert. Starke Ähnlichkeit zu Automaten, aber hier sind wir weniger an der akzeptierten Sprache interessiert. 1 a 2 c b 3 Barbara König Vorlesung Modellierung nebenläufiger Systeme 29 Verhaltensäquivalenzen Barbara König Vorlesung Modellierung nebenläufiger Systeme 30 Prozesskalküle Angenommen, ein externer Beobachter kann nur bestimmte Aktionen eines Systems von außen beobachten und nur begrenzt mit diesem System interagieren... Wie kann man feststellen, ob zwei Systeme aus Sicht dieses externen Beobachters äquivalent sind? Die Interaktion des Beobachters mit den Systemen kann oft als eine Art Spiel beschrieben werden. Verschiedene Verhaltensäquivalenzen (Sprachäquivalenz, Bisimularität) Interface, das nur gewissen Interaktionen mit dem System erlaubt Prozesskalküle sind Mini-Programmiersprachen mit denen direkt interagierende und kommunizierende Prozesse beschrieben werden können. Mögliche zusätzliche Features : Mobilität (von Kommunikationskanälen, von Prozessen) Beschreibung des Verhaltens von Prozessen durch Transitionen Bekannte Prozesskalküle: CCS, π-kalkül a.p ā.q τ P Q Barbara König Vorlesung Modellierung nebenläufiger Systeme 31 Barbara König Vorlesung Modellierung nebenläufiger Systeme 32
Petri-Netze Modell für nebenläufige Systeme, das die gemeinsame Nutzung von Ressourcen beschreibt. Ressourcen werden durch Marken repräsentiert und Transitionen konsumieren und erzeugen Marken. Viele Analysetechniken vorhanden (Überdeckbarkeitsgraph, Markierungsgleichung, Invarianten) Es gibt sogenannte Partialordnungsverfahren, die versuchen, Zustandsexplosionen aufgrund von Nebenläufigkeit zu vermeiden (z.b. Netz-Entfaltungen). Stelle Marke Transition Barbara König Vorlesung Modellierung nebenläufiger Systeme 33 Modellierung mit UML Die Modellierung von Systemen mit Hilfe von UML (= Unified Modeling Language) wird im Rahmen dieser Vorlesung nur am Rande behandelt. Folgende Typen von Diagrammen haben einen Bezug zu Themen der Vorlesung: Zustandsdiagramme (state diagrams/statecharts): entsprechen (erweiterten) Transitionssystemen mit zusätzlicher hierarchischer Struktur Aktivitätsdiagramme (activity diagrams): entsprechen in etwa Petri-Netzen Graphtransformations-Systeme Verallgemeinerung von Petri-Netzen, bei denen nicht nur Mengen von Marken, sondern Graphen transformiert werden. Graphen modellieren untereinander vernetzte Komponenten, die sich dynamisch verändern können. Transition in einem Graphtransformations-System: Barbara König Vorlesung Modellierung nebenläufiger Systeme 34 Modellierung mit UML Sequenzdiagramme (message sequence charts): können verwendet werden, um Kommunikation zwischen einer festen Anzahl von Prozessen darzustellen Zeit Prozess 1 Prozess 2 Prozess 3 Prozesskommunikation (Nachricht) Barbara König Vorlesung Modellierung nebenläufiger Systeme 35 Barbara König Vorlesung Modellierung nebenläufiger Systeme 36