Objektorientierte Daten- und Zeitmodelle für die Echtzeit ...
Objektorientierte Daten- und Zeitmodelle für die Echtzeit ...
Objektorientierte Daten- und Zeitmodelle für die Echtzeit ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
154 KAPITEL 6. FUNKTIONALE BESCHREIBUNG VON BILDFOLGENPROGRAMMEN<br />
¯ verfügbare Hardware: Anzahl der Prozessoren <strong>und</strong> deren Auslastung, Verteilung der <strong>Daten</strong>verarbeitung<br />
in einem Rechnernetz;<br />
¯ Umfang der in einem Zyklus zu ermittelnden <strong>Daten</strong>: sollen immer alle <strong>Daten</strong> bestimmt<br />
werden oder sind in Abhängigkeit von der aktuellen Aufgabe nur ausgewählte Ausgangsdaten<br />
notwendig.<br />
Im folgenden soll untersucht werden, wie durch <strong>die</strong> zuvor genannten Steuerungsmechanismen<br />
auf <strong>die</strong> verschiedenen Randbedingungen mehr oder weniger gut reagiert werden kann. Es<br />
wird <strong>für</strong> <strong>die</strong> einzelnen Entscheidungsklassen gezeigt, welche Verfahren <strong>die</strong> bestehenden Anforderungen<br />
besser erfüllen können, <strong>und</strong> unter welchen Bedingungen einzelne Ansätze weniger<br />
geeignet sind. Daraus ergeben sich in Abhängigkeit von Sensoren, <strong>Daten</strong>verarbeitungsaufgabe<br />
<strong>und</strong> Hardware typische Anwendungsmuster, <strong>die</strong> <strong>die</strong> verschiedenen Mechanismen jeweils in<br />
einer geeigneten Weise kombinieren. Da <strong>die</strong> Mechanismen sich z.T. gegenseitig beeinflussen,<br />
wird an <strong>die</strong>ser Stelle besonders auf <strong>die</strong> Querbeziehungen zwischen den verschiedenen Entscheidungskategorien<br />
hingewiesen. Beispieldatenflußgraphen aus dem RoboCup-Szenario illustrieren<br />
<strong>die</strong> typischen Anwendungsstrukturen.<br />
6.5.1 Parallelisierungsgrad<br />
Der Grad der potentiellen Parallelisierung eines Sensordatenmoduls kann bei dessen Konfiguration<br />
durch <strong>die</strong> Auswahl synchroner oder asynchroner Relationen festgelegt werden. Werden<br />
nur synchrone Relationen verwendet, teilt sich innerhalb des Moduls der Kontrollfluß nicht <strong>und</strong><br />
alle Aktionen werden streng sequentiell bearbeitet, asynchrone Relationen erlauben dagegen,<br />
daß der Kontrollfluß sich teilt <strong>und</strong> einzelne Aktionen parallel ausgeführt werden.<br />
Stehen dem System mehrere Prozessoren zur Verfügung, können <strong>die</strong>se durch asynchron definierte<br />
Kontrollflüsse <strong>für</strong> <strong>die</strong> Sensordatenverarbeitung ausgenutzt werden. Teilaufgaben werden<br />
dann automatisch nebenläufig ausgeführt, wenn <strong>die</strong> <strong>Daten</strong>abhängigkeiten <strong>die</strong>s zulassen. Für<br />
<strong>die</strong> parallele Bearbeitung mehrerer Zyklen im Pipeliningbetrieb muß das Modul entsprechend<br />
oft angestoßen werden. Dies kann beispielsweise an <strong>die</strong> Bereitstellung der Eingangsdaten gekoppelt<br />
werden, dabei ist jedoch — z.B. durch einen Agenten — sicherzustellen, daß im Mittel<br />
nicht mehr Zyklen angestoßen werden, als tatsächlich bearbeitet werden können.<br />
Sollte <strong>für</strong> <strong>die</strong> Sensordatenverarbeitung allerdings nur ein Prozessor zur Verfügung stehen,<br />
lohnt sich der Overhead, der durch das Anlegen <strong>und</strong> Bearbeiten nebenläufiger Programmzweige<br />
entsteht, nicht, <strong>und</strong> es können von vornherein synchrone Steuerungsrelationen definiert werden.<br />
Darüber hinaus hat eine streng sequentielle Bearbeitung den Vorteil, daß <strong>die</strong> Aufrufreihenfolge<br />
deterministisch ist <strong>und</strong> — bei einer anfragegetriebenen Steuerung — daß nicht deklarierte<br />
Rückkopplungszweige nur in <strong>die</strong>sem Modus erkannt werden können. Damit eignet sie sich besonders<br />
<strong>für</strong> Programmtests während der Entwurfsphase. Die Möglichkeit, bei einer veränderten<br />
Hardware, bzw. im realen Betrieb zu asynchronen Kontrollflüssen zu wechseln, bleibt davon<br />
unbenommen.<br />
Asynchrone Kontrollflüsse aufgr<strong>und</strong> mehrerer externer Prozesse: Greifen unabhängig<br />
voneinander mehrere nebenläufig arbeitende Komponenten (Eingangssensordaten oder<br />
Verbraucher) aktiv auf das <strong>Daten</strong>verarbeitungsmodul zu, kann das in <strong>die</strong>sem zu mehreren parallelen<br />
Kontrollflüssen führen, selbst wenn alle Relationen synchron definiert sind. Abb. 6.44 demonstriert<br />
<strong>die</strong>s an zwei Beispielen, in Abb. 6.44 a sind <strong>die</strong> Triggerrelationen ËÁÑ ØÖ ËÑ