25.11.2014 Aufrufe

Verifikation reaktiver Systeme - Universität Kaiserslautern

Verifikation reaktiver Systeme - Universität Kaiserslautern

Verifikation reaktiver Systeme - Universität Kaiserslautern

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

282<br />

Probleme bereitet bei der Definition eines (S,S)–PES die Funktion terms. Die<br />

Menge der Terme eines Prozeduraufrufes hängt von der Rekursionstiefe ab und<br />

ist potenziell unendlich. Bei einem Prozessabbruch muss jeder dieser Zustände<br />

in einem Schritt verlassen werden. Mit einer endlichen Menge von Regeln ist dies<br />

nicht möglich.<br />

Parallele Prozesse existieren sowohl in Esterel als auch in (P,P)–PES. In<br />

Esterel ist die Parallelität jedoch statisch im Programm festgelegt, wodurch der<br />

Zustandsraum endlich bleibt. Im Folgenden wird an einem Beispiel eine dynamische<br />

Prozesserzeugung eingeführt.<br />

fork ist ein Mikroschritt, der einen neuen Prozess als Kopie des aktuellen<br />

Prozesses erstellt. Im Modul ’fork’ wird, sobald das Signal ’a’ präsent ist, ein<br />

neuer Prozess erstellt und auf ’b’ gewartet. Der neue Prozess wartet auf das<br />

Signal a. Fork ist ein Mikroschritt und verbraucht keine Zeit, daher ist das<br />

Signal a noch präsent. Await ist jedoch verzögernd und terminiert nicht sofort.<br />

module fork:<br />

input a,b;<br />

(A) await a;<br />

fork;<br />

(B) await b<br />

end module<br />

Ein entsprechendes (P,P)–PES benötigt zwei Regeln. A wird beim Eintreten<br />

der Aktion ’a’ durch A ‖ B ersetzt, entsprechend den beiden Prozessen die auf<br />

’a’ bzw. ’b’ warten. B wird beim Eintreten der Aktion ’b’ in ɛ umgeschrieben,<br />

entsprechend dem Prozess der auf ’b’ wartet und dann terminiert. Tritt immer<br />

wieder ’a’ ein aber nie ’b’, werden immer wieder neue Prozesse erzeugt, die nicht<br />

terminieren. Der Zustandsraum wird damit unendlich groß.<br />

A −→ a A ‖ B<br />

B −→ b ɛ<br />

Diese Modellierung entspricht nicht ganz der Semantik von Esterel, wie das<br />

folgende Ausführungsbeispiel des (P,P)–PES zeigt.<br />

A a −→ B ‖ A a −→ B ‖ B ‖ A b −→ B ‖ A ...<br />

In den ersten beiden Schritten gilt ’a’ und nicht ’b’, daher wird jeweils ein<br />

neuer Prozess erzeugt. Zwei Prozesse warten nun auf ’b’. Bei der Aktion ’b’ wird<br />

ein Prozess zu ɛ umgeschrieben, aber nach der Semantik von Esterel terminieren<br />

beide Prozesse synchron. Da eine unbeschränkte Menge von Prozessen synchron<br />

einen Schritt machen kann, die Menge der Ersetzungsregeln aber nur endlich ist,<br />

ist diese Umsetzung nicht möglich.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!