Verhaltensbeschreibung und Spezifikationssprachen

Ähnliche Dokumente
Verteilte Systeme CS5001

4.2 Die Behandlung diskreter Zeitaspekte unter Synchroniehypothese

OOA-Dynamische Konzepte

WS Parallele Prozesse. Prof. Hannelore Frank. Parallele Prozesse. PetriNetze. Synchronisation UNIX. Wettbewerb PC Krit.Abschnitt Spinlocks

leave: mov flag, 0 ; 0 in flag speichern: Lock freigeben ret

HW/SW CODESIGN. Echtzeitverhalten. Mehmet Ozgan November 2015

Message Sequence Charts, Live Sequence Charts

Nebenläufige und verteilte Programme CS2301

Entwurf und Validierung paralleler Systeme

Verhaltensanalysegraph für Petrinetze

SIMULATION. example Data Transfer (XDT) Protocol. entwickelt im Rahmen der Bachelor-Arbeit. von. Tobias Weimann. User-Manual

Motivation. Motivation

Studienarbeit: Komposition von Web Services. Luhme IX Christian Stahl

BABOK Knowledge Area Requirements Analysis Modeling Techniques - Process Models - - State Diagrams - Holger Dexel,

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

9 Multithreading. 1 Idee des Multithreading

Rapide An Event-Based Architecture Definition Language

2.4.3 Zustandsgraphen

2.4.3 Zustandsgraphen

UML - Zustandsdiagramm

Petri-Netze / Eine Einführung (Teil 2)

Software-Engineering SS03. Zustandsautomat

CONCURRENCY MODELS. Auf der Suche nach dem heiligen Gral der ManyCores Peter Sturm. (c) Peter Sturm, Universität Trier

Die Dokumentation kann auf einem angeschlossenen Sartorius Messwertdrucker erfolgen.

Unified Modeling Language (UML )

Aufgabe 1: Sequenzdiagramm Gegeben ist das in Abbildung 1 dargestellte (vereinfachte) Sequenzdiagramm mit sechs Ereignissen (a-f ).

Reaktive Systeme und synchrones Paradigma

Beschreibung. Process Description: Sartorius Bestellnummer / Order No.:

The process runs automatically and the user is guided through it. Data acquisition and the evaluation are done automatically.

Architektur Verteilter Systeme Teil 6: Interprozess-Kommunikation

3.1 Konzepte und Syntax

Software Engineering in der Praxis

VHDL Verhaltensmodellierung

Restschmutzanalyse Residual Dirt Analysis

State Event Technik CT2, Donnerstag / TE402 M. Thaler, TG208, tham@zhaw.ch

Komponentenbasierte Softwareentwicklung

Modellierung von Echtzeitsystemen mit dem UML CASE Tool Telelogic Tau G2 Developer

Contents. Interaction Flow / Process Flow. Structure Maps. Reference Zone. Wireframes / Mock-Up

11. Aufgabenblatt

RUP Analyse und Design: Überblick

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Modellierung biologischer. Christian Maidorfer Thomas Zwifl (Seminar aus Informatik)

Prozessmodellierung mit Petri-Netzen

ISO Reference Model

Einführung Low-Level-Netze High-Level-Netze Referenzen. Petrinetze. Benjamin Daeumlich

VHDL Verhaltensmodellierung

IBM Demokratischere Haushalte, bessere Steuerung, fundierte Entscheidungen? Was leisten das neue kommunale Finanzwesen und Business Intelligence?

6.2 Petri-Netze. kommunizierenden Prozessen in der Realität oder in Rechnern Verhalten von Hardware-Komponenten Geschäftsabläufe Spielpläne

Modellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II)

Geschäftsprozessmanagement: Einführung in»business Process Modelling Notation«(BPMN)

Gliederung. Nebenläufigkeit und Fairness. 1. Nebenläufigkeit Lokalitätsprinzip. 2. Betrachtungsweisen von Nebenläufigkeit. 3.

Ein Laufzeitsystem für hochgradig parallele Simulationen

6.1 Statecharts in Rhapsody / UML 2.0

Modellierung von Geschäftsprozessen Teil 6 - Petri-Netze

4 Schleifen -= Entstanden unter Excel 2003 =-

Konfigurationsanleitung IPSec Verbindung mit Provider Backup Funkwerk / Bintec. Copyright 5. September 2008 Neo-One Stefan Dahler Version 1.

Einfache Rechenstrukturen und Kontrollfluss II

Jan 2014 Rev C

LabVIEW Real Time Hands on

Modellbildung und Analyse eingebetteter Systeme für mechatronische Anwendungen mit höheren Petri-Netze unter Verwendung verschiedener Erweiterungen

Rechnerarchitektur und Betriebssysteme (CS201): Semaphor, Monitor, Deadlocks, Re-Entrance

Verteilte Systeme SS Universität Siegen Tel.: 0271/ , Büro: H-B Stand: 7.

#define N 5 // Anzahl der Philosophen. while (TRUE) { // Der Philosoph denkt

Verteilte Algorithmen TI5005

Seminar Werkzeuggestütze. tze Softwareprüfung. fung. Slicing. Sebastian Meyer

Business Process Model and Notation

Kommunikationssysteme [KS]

Produktskizze. 28. November 2005 Projektgruppe Syspect

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Übung I Echtzeitbetriebssysteme

Sequenz- und Kommunikationsdiagrammen. Systemmodellierung mit SysML von Michel Manthey

BPMN Kategorien und Elementgruppen. Flussobjekte

KURZANLEITUNG. Firmware-Upgrade: Wie geht das eigentlich?

Echtzeitprogrammierung und Echtzeitverhalten von Keil RTX. Frank Erdrich Semester AI 7

Modellierung Zusammenfassung WS2000

Instruktionen Mozilla Thunderbird Seite 1

Thread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen

Beispiel für überladene Methode

GRIPS - GIS basiertes Risikoanalyse-, Informations- und Planungssystem

Message Oriented Middleware am Beispiel von XMLBlaster

HIR Method & Tools for Fit Gap analysis

ISO Reference Model

Theorie zu Übung 8 Implementierung in Java

Wozu dient ein Logikanalysator?

Vorlesung "Verteilte Systeme" Sommersemester Verteilte Systeme. Adreßraum. Rechner. Verteilte Systeme, Sommersemester 1999 Folie 19.

ReadMe zur Installation der BRICKware for Windows, Version ReadMe on Installing BRICKware for Windows, Version 6.1.2

Notationen zur Prozessmodellierung

Einführung in die Robotik Steuerungsarchitekturen. Mohamed Oubbati Institut für Neuroinformatik. Tel.: (+49) 731 / mohamed.oubbati@uni-ulm.

Themen. Dienste der Transportschicht. 3-Wege-Handshake. TCP-Protokoll-Header. Real-Time-Protocol

Kurzanleitung um Transponder mit einem scemtec TT Reader und der Software UniDemo zu lesen

Simple Scope. ecos-vertiefung. Florian Franzmann Tobias Klaus Peter Wägemann

Motivation für Fehlertoleranz in VS Fehlermodelle Erreichen von Fehlertoleranz. Verteilte Systeme. 7. Fehlertoleranz

Software Engineering in der Praxis

WF4 Windows Workflow Foundation. Titelmasterformat

There are 10 weeks this summer vacation the weeks beginning: June 23, June 30, July 7, July 14, July 21, Jul 28, Aug 4, Aug 11, Aug 18, Aug 25

Übungen zu Rechnerkommunikation

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Test-Suite zum Testen eines zustandsbasierten Systems

Task A Zündung. Task B Einspritzung. Task C Erfassung Pedalwert. J. Schäuffele, Th. Zurawka: Automotive Software Engineering, Vieweg, 2003

Smart Metering: Entwicklung eines intelligenten Stromzählers

Transkript:

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