TECHNISCHE UNIVERSITÄT ILMENAU Verhaltensbeschreibung und Spezifikationssprachen Integrated Kommunikation Systems http://www.tu-ilmenau.de/iks Verhaltensmodelle Zustandsautomaten (FSM) Nicht-deterministische Zustandsautomaten (NDFSM) Parallele Zustandsautomaten Petri-Netz (PN) Datenflussgraph (DFG) Kontrollflussgraph (CFG) Kontroll-Datenflussgraph (CDFG) Grundkonzepte Nebenläufigkeit Hierarchie Kommunikation Synchronisation Ausnahmebehandlung Nicht-Determinismus Timing Spezifikationssprachen StateCharts SDL VHDL SystemC...
NDFSMs und FSMs Formal sind FSMs und NDFSMs äquivalent (Rabin-Scott construction, Rabin 59) Praktisch sind NDFSMs meist kompakter (weniger Zustände) (exponentielle Zustandsexplosion um Determiniertheit zu erreichen) Beispiel: nicht-deterministische Auswahl von Übergang a in Zustand s1 äquivalente deterministische FSM s1 a s1 a c c a s2,s3 b c s3 s2 b s3 a b a a s2 Integrated Kommunikation-Systems Andreas Mitschele-Thiel / H.-D. Wuttke 18-Nov-13 2
FSM Komposition Beispiel Beispiel: Sicherheitsgurt timer KEY_ON => START_TIMER WAIT Timer Belt Control KEY_OFF or END_TIMER_5 => OFF BELT _ON => ALARM_ON END_TIMER_10 or BELT_ON or ALARM KEY_OFF => ALARM_OFF Sicherheitsgurt- Steuerung: 5 sec nach Betätigen des Zündschlüssels soll ein Alarmsignal solange ertönen, wie der Gurt nicht angelegt ist. Nach 10 sec soll der Alarm beendet werden. Integrated Kommunikation-Systems Andreas Mitschele-Thiel / H.-D. Wuttke 18-Nov- 3
FSM Komposition Beispiel Beispiel: seat belt control timer KEY_ON => START_TIMER WAIT Timer Belt Control KEY_OFF or END_TIMER_5 => OFF BELT _ON => ALARM_ON END_TIMER_10 or BELT_ON or ALARM KEY_OFF => ALARM_OFF START_TIMER => START_TIMER => SEC => SEC => SEC => 1 2 3 4 SEC => END_TIMER_5 0 SEC => END_TIMER_10 9 SEC => 8 SEC => 7 SEC => 6 SEC => 5 Integrated Kommunikation-Systems Andreas Mitschele-Thiel / H.-D. Wuttke 18-Nov-13 4
Synchrone vs. asynchrone FSMs Synchrone FSMs (z.b. StateCharts): Kommunikation mit Hilfe von gemeinsamen Variablen (shared variables) => lesen und schreiben ohne zusätzlichen Zeitaufwand Sofortige Kommunikation und Berechnung zu definierten Zeitpunkten alle Zustandsübergänge laufen gleichzeitig ab (lock-step) unter Umständen schwierig zu implementieren multi-rate specifications???? verteilte/heterogene Architekturen Asynchrone FSMs (z.b. SDL, CSP) : voneinander unabhängige Abläufe möglich keine gleichzeitigen Übergänge (Ausnahme: CSP rendezvous) Ggfs. Zeitstempel zur Synchronisation erforderlich leicht zu implementieren Vielzahl (nicht-)kommerzieller graphischer Sprachen und Tools: StateCharts, UML, SDL, StateFlow Tool-Support für Design, Simulation, Validierung, Code-Generierung, HW- Synthese, 5
StateCharts Grundlagen Grundlagen: Erweiterung konventioneller FSMs konventionelle FSMs für komplexe Verhaltensbeschreibungen ungeeignet flach und unstrukturiert von Natur aus sequenziell StateCharts unterstützen wiederholte Zerlegung von Zuständen in Sub-Zustände mit AND/OR, sowie synchrone Kommunikation (unmittelbare Übertragung an alle (Broadcast)) StateCharts beschreiben das Verhalten, zusätzlich (aber weniger gebräuchlich) können ModuleCharts die Struktur und ActivityCharts Datenfluss und Kontrollfluss beschreiben Quelle: Science of Computer Programming 8 (1987) 231-274, North-Holland STATECHARTS: A VISUAL FORMALISM FOR COMPLEX SYSTEMS David HAREL, Department of Applied Mathematics, The Weizmann Institute of Science, Rehovot, Israel 6
StateCharts Syntax Die allgemeine Syntax eines Übergangs in StateCharts ist E(C)/A wobei S,T Zustände darstellen E ist das Ereignis, welches den Übergang auslöst (extern oder intern) C ist die Bedingung für den Übergang (C muss wahr sein, wenn E eintritt, sonst kein Übergang) A ist die Aktion, welche beim Übergang erfolgt Für jeden Übergang gilt: Bedingung und Aktion sind optional ein Ereignis kann eine Veränderung eines Variablenwertes sein elementare Vergleiche (z. B. x > y) sind gültige Bedingungen Wertzuweisungen (z. B. x := 10) sind gültige Aktionen 7
StateCharts Syntax System-Zustand (Status): Konfiguration: Alle aktiven Zustände orthogonaler Komponenten Werte von Bedingungen und Variablen Liste der im letzten Schritt gegnerierten Ereignisse History Information Eingabe: Liste der im letzten Übergang erzeugten Ereignisse der Umgebung Änderung von Bedingungen und Variablenwerten Zustandswechsel: neuer Systemzustand 8
StateCharts Aktionen und Ereignisse Eine Aktion A beim Verlassen eines Zustandes kann als Ereignis einen Übergang in einem orthogonalen (=nebenläüfigen =parallelen) Zustand auslösen: ein Zustandswechsel erzeugt ein für alle anderen Zustände und FSMs sichtbares Ereignis, welches sofort bei allen weiteren FSMs Übergänge auslösen kann, welche wiederum Übergänge auslösen können... die Ausführung des ersten Zustandswechsels bewirkt den zweiten Zustandswechsel unmittelbar und gleichzeitig (in der Realität problematisch!!!) Aktionen und Ereignisse können mit der Ausführung orthogonaler Komponenten in Verbindung stehen: start(a), stopped(b) Orthogonale Komponenten arbeiten im Prinzip nebenläufig und unabhängig voneinander, können sich aber gegenseitig beeinflussen. Entry / Exit Aktionen in den Zuständen bei Eintritt bzw. Verlassen 9
StateCharts Hierarchie Zustandszerlegung: OR-States haben Unterzutände (sub-states) die in exklusiv-oder (XOR) Relation stehen AND-States haben orthogonale Zustandskomponenten (synchrone parallele FSMs) AND-dekomposition auf jeder Hierarchie-Ebene erlubt => besser handhabbar als in Automatennetzen (communicating FSMs), die nur eine Ebene zulassen Basic States haben keine Sub-States (Grund der Hierarchie) Root State haben keine Parent States (Spitze der Hierarchie) Initialisierung: Default (Initialzustände) können in jeder Hierarchiestufe markiert werden History Connector zum Speichern des letzten angenommenen Zustandes in Sub- States Kombination: Initiialzustand beim ersten Starten und History bei weiteren Schritten 10
StateCharts OR Dekomposition Zustand U ist eine Abstraktion der Zustände S und T Um in Zustand U zu sein, muss das System entweder in Zustand S oder in Zustand T sein g S e V f U g S f e V T f h T h Integrated Kommunikation-Systems Andreas Mitschele-Thiel / H.-D. Wuttke 18-Nov- 11
StateCharts Top Down Design Zustand V ist eine Abstraktion der Zustände S und U 12
StateCharts Default State Flache Struktur Hierarchische Struktur 13
StateCharts Default State Flache Struktur Hierarchische Struktur 14
StateCharts Exit on Sub-States Inkorrekt (b=c???) Korrekt 15
StateCharts Default State und History Default: off bei erstem Aufruf Dann: History gleichbedeutend 16
StateCharts AND State Parallele Struktur: n+m Zustände Flache Struktur:??? 17
StateCharts AND State : Flache Struktur Flache Struktur: äquivalente FSM! n*m Zustände 18
StateCharts externe Übergangsvarianten zu AND States A Betreten des Top States (z.b. aufgrund des Ereignisses n ) aktiviert alle parallelen Automaten. 19
StateCharts externe Übergangsvarianten zu AND States A Betreten des Top States (z.b. aufgrund des Ereignisses n ) aktiviert alle parallelen Automaten. Verlassen des Sub-States W (z.b. aufgrund von h (ins) ) deaktiviert den Top State A. 20
StateCharts Aktionen bei Eintritt und/oder Verlassen 21
StateCharts Synchronitäts Hypothese Alle 3 Übergänge geschehen (theoretisch) gleichzeitig => instabile Konfiguration, erst nach Ablauf von A,B,D stabil 22
StateCharts Synchronitätsproblem Mit ursprünglicher Semantik Widerspruch =>Lösung: Mikroschritte (micro steps) 23
StateCharts Mikroschritte Mikro- und Makro- Schritt Semantik: Reaktionen auf Ereignisse und Änderungen geschehen im Mikroschritt und können nur danach wahrgenommen werden Ereignisse in Mikroschritten existieren nur während des einen, auf den verursachenden Mikroschritt folgenden Mikroschritts Berechnungen werden basierend auf der Situation vor dem Mikroschritt durchgeführt Die Durchführung eines Mikroschrittes ändert die Konfiguration des StateCharts Mikroschritte verbrauchen keine Zeit Zeitfortschreitung in Makroschritten nur, wenn kein Übergang stattfindet, d.h. stabile Konfiguration Takt-Ereignisse erfolgen als Makroschritte 24
StateCharts Synchronitätsproblem Aber echte Verklemmung mit Mikroschritten allein nicht lösbar => Priorisierung (z.b. E1 vor E2 (Regel: z. B. v.l.n.r.); nicht StateChart- Semantik!! 25
StateCharts AND Dekomposition (7/11)<> Komposition (8/14) k V,Z V,W V.Y U S To be in state U the system must be both in states S and T T e V Z k X.Z X,Y e W e X Y e Q k X,W R Q R Integrated HW/SW-Systems Andreas Mitschele-Thiel / H.-D. Wuttke 18-Nov- 26
StateCharts komplexes Beispiel Stopp-Uhr 27
StateCharts Zusammenfassung 28
Asynchrone Kommunikation Blockierend (Blocking vs. non-blocking) blocking read (Empfänger wartet auf Sender) Lesevorgang kann nicht auf leeren Eingabepuffer prüfen muss auf Eingabe warten A B blocking write (Sender wartet auf Empfänger) Schreibvorgang darf erst nach erfolreichen Schreiben fortsetzen (Schreibvorgang muss Schreibbestätigung abwarten???) Sprachen / Prinzipien blocking write/blocking read (CSP, CCS) (communicating seq. processes, calculus of communicating systems) non-blocking write/blocking read (FIFO, CFSMs, SDL) non-blocking write/non-blocking read (geteilte Variablen) 29
Asynchrone Kommunikation Pufferung A B Puffer (Buffer) dienen zum Ausgleich unterschiedlicher Datenraten von Sender und Empfänger => Problem: Größe des Speichers? verlustfrei oder verlustbehaftet Ereignisse/Token könnten verlorengehen Speicherbegrenzung: Überlauf (Overflow) oder Überschreiben Sender muss geblockt werden einfaches oder mehrfaches Lesen Ergebnis eines jeden Schreibens kann nur einmal oder mehrfach gelesen werden Einfacher FIFO Puffer Priorisierung Außerordentlicher (out of order) Zugriff auf FIFO 30
Kommunikationsmechanismen Rendez-Vous (CSP) keine gemeinsamen Daten, Prozesse müssen zu bestimmten Zeiten synchronisiert Daten austauschen Lesen und Schreiben erfolgen simultan Gemeinsamer Speicher (shared memory) mehrfaches zerstörungsfreies Auslesen möglich Überschreiben gespeicherter Daten bei jedem Schreiben Buffered (FIFO) Begrenzt (bounded) (ECFSMs, CFSMs), feste Kapazität Unbegrenzt (unbounded) (SDL, ACFSMs, Kahn Process Networks, Petri- Netze) 31
Kommunikationsmodelle writer is blocked (e.g. if buffer is full) reader is blocked (e.g. if buffer is empty) data may be read once only Sender Empfänger Puffer Größe Blocking Reads Blocking Writes Single Reads Unsynchronisiert many many one no no no Read-Modify-write many many one yes yes no Unbounded FIFO one/many one unbounded yes no yes Bounded FIFO one/many one bounded yes may be yes Rendezvous one one one yes yes yes Integrated HW/SW-Systems Andreas Mitschele-Thiel / H.-D. Wuttke 18-Nov- 32
Petri-Netze (PNs) Modell eingeführt von C.A. Petri in 1962 Ph.D. Thesis: Communication with Automata Anwendungsfelder: Dezentralisierte Datenverarbeitung, Fertigung, Steuerung, Kommunikationsnetzwerke, Transport, PNs beschreiben explizit und grafisch: Sequenz/Kausalität Konflikt/nicht-deterministische Entscheidung Nebenläufigkeit Asynchrones Modell (Teilordnungsrelation) hauptsächlicher Nachteil: keine Hierarchie 33
Petri-Netz Ein PN (N,M0) ist ein Petri-Netz Graph N und eine Anfangsmarkierung M0 Plätze: repräsentieren verteilten Zustand durch Markenverteilung (Token) Markierung (Zustand) M ist ein n-vektor (m1,m2,m3 ), mit mi als nicht-negative Anzahl von Marken auf Platz pi. Anfangsmarkierung (M 0 ) bezeichnet den Initialzustand Übergänge: repräsentieren Aktionen/Ereignisse enabled transition: schaltfähige Transition t : genug Marken in den Vorplätzen firing transition: feuernde Transition : verändert Markierung ( Markenfluss ) t2 p1 t1 p2 p4 p3 t3 34
Nebenläufigkeit, Kausalität, Entscheidung t1 Nebenläufigkeit t2 Kausalität, Sequenz t5 t3 t4 Entscheidung, Konflikt t6 35
Producer-Consumer Problem Produce Buffer Consume Integrated HW/SW-Systems Andreas Mitschele-Thiel / H.-D. Wuttke 18-Nov- 36
Communication Protocol Send msg Process 1 Process 2 Send Ack Receive Ack Integrated HW/SW-Systems Andreas Mitschele-Thiel / H.-D. Wuttke 18-Nov- 37
Petri Nets - Properties Behavioral properties: depend on the initial marking (most interesting) Reachability (of marking M from marking M o) Boundedness (number of tokens is limited) Conservation (number of tokens remains constant) Liveness (any transition can be fired from any marking M) Schedulability Structural properties: do not depend on the initial marking (often too restrictive) Consistency Structural boundedness 38
Summary: Control Flow Description Properties Specification Language Nondeterminism NDFSM Parallel automata State Charts, Petri Nets Processes SDL Communication MSC Hierarchy State Charts Graphical support All Semantic Different ;-( 39