28.10.2013 Aufrufe

Erweiterte Modelle endlicher Automaten - Computer Engineering ...

Erweiterte Modelle endlicher Automaten - Computer Engineering ...

Erweiterte Modelle endlicher Automaten - Computer Engineering ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Diskrete Ereignissysteme<br />

3.2 <strong>Erweiterte</strong> <strong>Modelle</strong> <strong>endlicher</strong> <strong>Automaten</strong><br />

Institut für Technische Informatik und Kommunikationsnetze<br />

Lothar Thiele<br />

Swiss Federal<br />

Institute of Technology<br />

Zustandsautomaten<br />

Modellierungsdefizite:<br />

– nur ein sequentieller Prozess, keine Nebenläufigkeit<br />

– keine hierarchische Strukturierungsmöglichkeit<br />

1<br />

<strong>Computer</strong> <strong>Engineering</strong><br />

and Networks Laboratory<br />

Wesentliche Erweiterung: STATECHARTS-Modell von D. Harel<br />

(siehe Publikation und Demos). Dieses Modell wird in vielen Tools<br />

zur Spezifikation, Analyse, Simulation und Implementation von<br />

DES verwendet, z.B. Matlab-Stateflow, UML, Rhapsody,<br />

Magnum, … .<br />

Wir werden nur Grundzüge des Modells betrachten.<br />

Swiss Federal<br />

Institute of Technology<br />

3<br />

<strong>Computer</strong> <strong>Engineering</strong><br />

and Networks Laboratory<br />

Synchrone Modellierung<br />

Definition:<br />

– Die Umgebung eines DES ist eine geordnete Sequenz von<br />

Augenblicken, in denen jeweils kein, ein oder mehrere<br />

Ereignisse auftreten können.<br />

– Das DES reagiert augenblicklich auf externe Ereignisse.<br />

Folgerung:<br />

– Anstelle der physikalischen Zeit treten die Begriffe der<br />

Gleichzeitigkeit und Reihenfolge von Ereignissen.<br />

– Zustandsautomaten erfüllen die synchrone Eigenschaft.<br />

Swiss Federal<br />

Institute of Technology<br />

Hierarchischer Automat<br />

Swiss Federal<br />

Institute of Technology<br />

2<br />

4<br />

<strong>Computer</strong> <strong>Engineering</strong><br />

and Networks Laboratory<br />

Es gibt drei Arten von Zuständen:<br />

– Ein Basiszustand hat keine Teilzustände.<br />

– Ein sequentieller Zustand hat Teilzustände, die in einer<br />

“exklusiv-oder” Relation zueinander stehen. Die<br />

Zustandsmenge ist die Vereinigung der Zustandsmengen der<br />

Teilzustände : X = X 1 ∪ X 2 ∪ X 3 ∪ ... .<br />

– Ein paralleler Zustand hat nebenläufige Teilzustände, die also<br />

in einer “und”-Relation zueinander stehen. Die Zustandsmenge<br />

ist das Kreuzprodukt der Zustandsmengen der Teilzustände :<br />

X = X 1 × X 2 × X 3 × ... .<br />

<strong>Computer</strong> <strong>Engineering</strong><br />

and Networks Laboratory


Beispiele<br />

Basiszustand<br />

A<br />

X<br />

B E F<br />

C<br />

D<br />

Swiss Federal<br />

Institute of Technology<br />

Sequ. Zustand Par. Zustand<br />

A<br />

X<br />

A<br />

B C<br />

Y Z<br />

G H<br />

I K L<br />

Hierarchischer Automat<br />

M<br />

5<br />

X Y<br />

A<br />

B E<br />

C D F M<br />

G H<br />

I K L<br />

<strong>Computer</strong> <strong>Engineering</strong><br />

and Networks Laboratory<br />

Neben den Zuständen, die explizit als Basiszustände, sequentielle<br />

oder paralle Zustände modelliert sind, können beliebige weitere<br />

Variablen (und damit Zustände) definiert werden.<br />

Bei Zustandsübergängen können auf diese Variablen durch<br />

Operationen verändert werden (“action”).<br />

Zustandsänderungen können von diesen Variablen abhängig<br />

gemachtg werden (“condition” ).<br />

Swiss Federal<br />

Institute of Technology<br />

action unstrukturierter<br />

Zustandsraum<br />

Variablen<br />

condition<br />

7<br />

<strong>Computer</strong> <strong>Engineering</strong><br />

and Networks Laboratory<br />

Beispiel<br />

Berechnung der Zustandsmenge<br />

– Basiszustände: Zustandsmenge = Zustand<br />

– Parallele Zustände: Zustandsmenge = Kreuzprodukt der<br />

Kinder.<br />

– Sequentielle Zustände: Zustandsmenge = Vereinigung der<br />

Kinder<br />

X H = X L , X G = X I ∪X K , X F = X G × X H<br />

X B= X C∪X D , X E = X M∪ X F<br />

X A = X B× X E<br />

X A = (X C∪X D)×(X M∪ ((X I∪X K)×X L))<br />

= X CIL∪X CKL∪X CM∪X DIL∪X DKL∪X DM<br />

Swiss Federal<br />

Institute of Technology<br />

Hierarchischer Automat<br />

Transitionen zwischen Zuständen sind von der Form<br />

Swiss Federal<br />

Institute of Technology<br />

event[condition]/action<br />

6<br />

8<br />

A<br />

B E<br />

C D F M<br />

G H<br />

I K L<br />

<strong>Computer</strong> <strong>Engineering</strong><br />

and Networks Laboratory<br />

– Ein Zustandsübergang tritt auf, falls das Ereignis “event”<br />

eintritt und die Bedingung “condition” zum Zeitpunkt des<br />

Ereignisses den Wert “true” hat.<br />

– Die Bedingung “condition” wird über den Variablen des<br />

Modells ausgewertet.<br />

– Mit dem Zustandsübergang wird die Aktion “action”<br />

ausgeführt: Auslösen eines oder mehrerer Ereignisse und/oder<br />

Berechnung von Variablen.<br />

<strong>Computer</strong> <strong>Engineering</strong><br />

and Networks Laboratory


Hierarchischer Automat<br />

“event” kann aus zusammengesetzten Ereignissen bestehen: e,<br />

Bedingungen c und Aktionen a, z.B.<br />

–(e1 and e2) : Ereignis, das dem gleichzeitigen Eintreten von e1<br />

und e2 entspricht (auch e1.e2).<br />

–(e1 or e2) : Ereignis, das eintritt, falls e1 oder e2 oder beide<br />

gleichzeitig eintreten (auch e1+e2).<br />

– (not e) : Ereignis tritt auf, wenn e nicht eintritt (auch e ).<br />

Aktionen können ebenfalls zusammengesetzt werden:<br />

–(a1; a2) : Aktionen a1 und a2 werden sequentiell ausgeführt.<br />

Alle Ereignisse, Zustände, Aktionen usw. sind global sichtbar.<br />

Swiss Federal<br />

Institute of Technology<br />

Semantik<br />

9<br />

<strong>Computer</strong> <strong>Engineering</strong><br />

and Networks Laboratory<br />

Ein Schritt ist der Uebergang von einer Zustandskonfiguration in<br />

eine direkt folgende Konfiguration.<br />

Ein Schritt wird in beliebig kurzer Zeit ausgeführt.<br />

Aktionen werden am Ende eines Schrittes ausgeführt und sind ab<br />

dem direkt folgenden Schritt gültig.<br />

Generierte Ereignisse sind nur im direkt folgenden Schritt gültig.<br />

Werden mehrer Uebergänge gleichzeitig ausgeführt, so gehören sie<br />

zu parallelen Zuständen.<br />

Auftreten externer Ereignisse<br />

Transport interner Ereignisse<br />

Swiss Federal<br />

Institute of Technology<br />

stabil<br />

11<br />

stabil<br />

Schritte (interne Zustandsübergänge)<br />

<strong>Computer</strong> <strong>Engineering</strong><br />

and Networks Laboratory<br />

Beispiel<br />

e:<br />

a1:<br />

a2:<br />

c:<br />

e:<br />

a1:<br />

a2:<br />

c:<br />

Swiss Federal<br />

Institute of Technology<br />

Beispiele<br />

e/a1 [c]/a2<br />

x y z<br />

Zustandsdiagramme: stabile<br />

Konfigurationen<br />

Swiss Federal<br />

Institute of Technology<br />

10<br />

12<br />

true<br />

false<br />

true<br />

false<br />

<strong>Computer</strong> <strong>Engineering</strong><br />

and Networks Laboratory<br />

<strong>Computer</strong> <strong>Engineering</strong><br />

and Networks Laboratory


Semantik<br />

Können keine Übergänge ausgeführt werden, so ist die<br />

Zustandskonfiguration stabil.<br />

Beim Eintritt in einen sequentiellen Zustand wird der<br />

Anfangszustand initialisiert.<br />

Beim Eintritt in einen parallelen Zustand werden alle Teilzustände<br />

eingenommen.<br />

Beim Austritt aus einem parallelen Zustand werden alle<br />

Teilzustände verlassen.<br />

Swiss Federal<br />

Institute of Technology<br />

Beispiel<br />

Zyklisches Verhalten:<br />

Swiss Federal<br />

Institute of Technology<br />

a/b<br />

13<br />

A C<br />

c/d<br />

15<br />

b/c<br />

B D<br />

d/a<br />

<strong>Computer</strong> <strong>Engineering</strong><br />

and Networks Laboratory<br />

<strong>Computer</strong> <strong>Engineering</strong><br />

and Networks Laboratory<br />

Beispiel<br />

Nichtdeterminismus<br />

a<br />

A C<br />

a a<br />

B D<br />

Zustandsdiagramm:<br />

Swiss Federal<br />

Institute of Technology<br />

Beispiel<br />

A<br />

C<br />

a<br />

B<br />

b<br />

Swiss Federal<br />

Institute of Technology<br />

a<br />

a<br />

A,B C,D<br />

D E<br />

F H<br />

d<br />

G I<br />

b<br />

a<br />

a/c<br />

c/d<br />

d<br />

14<br />

16<br />

a<br />

a<br />

E G<br />

F H<br />

E,H<br />

F,G<br />

<strong>Computer</strong> <strong>Engineering</strong><br />

and Networks Laboratory<br />

Zustandsdiagramm<br />

(nur stabile Zustände<br />

sind dargestellt) :<br />

B<br />

b<br />

G,H<br />

a.b _<br />

a or b<br />

F,H<br />

a or b<br />

<strong>Computer</strong> <strong>Engineering</strong><br />

and Networks Laboratory


Ausblick<br />

Vorteile hierarchischer Zustandsautomaten:<br />

– Mathematisch fundierte Darstellung diskreter Ereignissysteme.<br />

– Leichte Umsetzung in eine Software- oder Hardware-<br />

Implementierung.<br />

– Effizient simulierbar.<br />

– Effizient verifizierbar (model checking), falls in den Aktionen<br />

(action) nur Ereignisse generiert werden.<br />

Nachteile hierarchischer Zustandsautomaten:<br />

– Unübersichtlich für grosse Systeme.<br />

– Wiederverwendbarkeit klein.<br />

Swiss Federal<br />

Institute of Technology<br />

Vom <strong>Automaten</strong> zur Implementierung<br />

Swiss Federal<br />

Institute of Technology<br />

Zustandsautomat<br />

CC VHDL VHDL<br />

Compiler<br />

Maschinenprogramm<br />

Prozessor<br />

17<br />

Synthese<br />

Schaltung<br />

Implementierung<br />

Berechnung Berechnung<br />

Software Hardware<br />

19<br />

<strong>Computer</strong> <strong>Engineering</strong><br />

and Networks Laboratory<br />

Synthese<br />

Blockschaltbild<br />

Plazieren<br />

Verdrahten<br />

FPGA-Programm<br />

Programm<br />

laden<br />

<strong>Computer</strong> <strong>Engineering</strong><br />

and Networks Laboratory<br />

Ausblick<br />

– Keine Darstellung des transformatorischen Anteils von<br />

Systemen (Datenfluss, arithmetische Operationen, ...).<br />

– Grosser Teil des Systemzustandes ist in der Ausführung von<br />

Operationen (action) auf „externen“ Variablen verborgen.<br />

Verwandte Ansätze und kommerzielle Software-Tools:<br />

– Kommunizierende sequentielle Prozesse (CSP, OCCAM).<br />

– Petri-Netze (siehe später).<br />

– Imperative Sprachen (Esterel), Datenfluss-Sprachen (Lustre),<br />

Realtionale Sprachen (Signal), synchrone <strong>Automaten</strong> (Argos).<br />

– Sprachen für Echtzeit-Systeme (Euclid).<br />

– Gemischte <strong>Modelle</strong> (CIP, SDL, Matlab-StateFlow, Unified<br />

Modeling Language (UML), ROOM, Rhapsody(Harel),...)<br />

Swiss Federal<br />

Institute of Technology<br />

Magnum (Statecharts-Tool)<br />

Spezifikation<br />

Swiss Federal<br />

Institute of Technology<br />

18<br />

20<br />

<strong>Computer</strong> <strong>Engineering</strong><br />

and Networks Laboratory<br />

<strong>Computer</strong> <strong>Engineering</strong><br />

and Networks Laboratory


Magnum (Statecharts)<br />

Simulation<br />

UML<br />

Swiss Federal<br />

Institute of Technology<br />

Swiss Federal<br />

Institute of Technology<br />

21<br />

23<br />

<strong>Computer</strong> <strong>Engineering</strong><br />

and Networks Laboratory<br />

<strong>Computer</strong> <strong>Engineering</strong><br />

and Networks Laboratory<br />

UML<br />

UML (unified modelling language) wird zur Spezifikation und<br />

Modellierung grosser Softwaresysteme sowie eingebetteter<br />

(Echtzeit)-Systeme eingesetzt.<br />

UML ist ein internationaler Standard und ist Grundlage<br />

mehrerer Software Entwicklungs-umgebungen (<strong>Computer</strong> Aided<br />

Software <strong>Engineering</strong>).<br />

Die wesentlichen dynamischen <strong>Modelle</strong> sind StateCharts und<br />

Activity Charts (Petri Netze).<br />

Swiss Federal<br />

Institute of Technology<br />

StateFlow<br />

Teil von Matlab-<br />

Simulink<br />

Verbindung von<br />

kontinuierlicher<br />

und<br />

diskreter<br />

Modellierung<br />

Swiss Federal<br />

Institute of Technology<br />

22<br />

24<br />

<strong>Computer</strong> <strong>Engineering</strong><br />

and Networks Laboratory<br />

<strong>Computer</strong> <strong>Engineering</strong><br />

and Networks Laboratory

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!