16.08.2013 Aufrufe

Objektorientierte Daten- und Zeitmodelle für die Echtzeit ...

Objektorientierte Daten- und Zeitmodelle für die Echtzeit ...

Objektorientierte Daten- und Zeitmodelle für die Echtzeit ...

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.

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 ËÁÑ ØÖ ËÑ

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!