34
2 Spezifikation und Modellierung
Viele Anwendungen müssen bestimmte Berechnungen in begrenzter Zeit ausführen. So müssen beispielsweise die Airbags eines Autos innerhalb von rund
zehn Millisekunden zünden, nachdem ein Sensor einen Unfall angezeigt hat.
Hier müssen wir garantieren, dass die Software in der vorgegebenen Zeit entscheidet, ob die Airbags gezündet werden sollen oder nicht. Wenn die Airbags
zu spät zünden, könnten Insassen verletzt werden. Leider erlauben es die meisten Sprachen nicht, Zeitschranken anzugeben. Wenn sie angegeben werden
können, dann zumeist in separaten Steuerungsdateien oder in Dialogfenstern.
Die Situation wäre aber immer noch schwierig zu beherrschen, wenn sich
Zeitschranken angeben ließen. Der Grund hierfür ist, dass moderne Hardware
kein gut vorhersagbares Zeitverhalten besitzt. Caches, blockierte Pipelines,
spekulative Ausführung, Verdrängung von Prozessen, Unterbrechungen (engl.
interrupts) usw. haben alle einen nur schwer vorhersagbaren Einfluss auf die
Ausführungszeit. Entsprechend ist die Zeitanalyse eine sehr schwierige Entwurfsaufgabe.
• Zustandsorientiertes Verhalten: In Kapitel 1 wurde schon erwähnt, dass Automaten eine gute Darstellungsmöglichkeit für reaktive Systeme sind. Aus diesem
Grund sollte es einfach sein, zustandsorientiertes Verhalten, wie es endliche Automaten zeigen, zu beschreiben. Klassische Automatenmodelle sind allerdings
nicht ausreichend, da sie weder Zeitbedingungen noch Hierarchie unterstützen.
• Ereignisbehandlung: Da eingebettete Systeme oft reaktive Systeme sind, müssen
Mechanismen zur Beschreibung von Ereignissen existieren. Solche Ereignisse
können externe (von der Umwelt erzeugte) oder interne (von Komponenten des
Systems erzeugte) Ereignisse sein.
• Ausnahmeorientiertes Verhalten: In vielen realen Systemen treten Ausnahmen
auf. Um verlässliche Systeme entwerfen zu können, muss die Behandlung solcher
Ausnahmesituationen einfach zu beschreiben sein. Es ist nicht ausreichend, wenn
man die Ausnahmebehandlung z.B. für jeden einzelnen Zustand angeben muss,
wie das etwa bei klassischen Automatenmodellen der Fall ist.
Beispiel 2.1: In Abb. 2.1 soll die Eingabe k das Auftreten einer Ausnahme darstellen. Die Angabe einer solchen Ausnahme für jeden Zustand lässt das Diagramm
Abb. 2.1 Zustandsdiagramm
mit Ausnahme k
m
k
Z
k k
k
D
i
j
E
f
A
B
C
h
g
k
komplex werden. Für größere Diagramme mit vielen Übergängen würde die Situation noch unübersichtlicher werden. Auf Seite 56 werden wir zeigen, wie man
alle diese Transitionen durch eine einzige ersetzen kann (siehe Abb. 2.12).
∇
Précédent

- 57/485

Suivant