14.01.2015 Aufrufe

Dynamische Adaption in heterogenen verteilten eingebetteten ...

Dynamische Adaption in heterogenen verteilten eingebetteten ...

Dynamische Adaption in heterogenen verteilten eingebetteten ...

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.

4 Basisschicht e<strong>in</strong>es Verwalters<br />

2. Ausführung der Operationen (peek, poke, resume, . . . ).<br />

4.5.7.1 Kommunikation<br />

Im e<strong>in</strong>fachsten Fall kann das RCM e<strong>in</strong> eigenes Kommunikationsmedium nutzen, das nur für die<br />

Verb<strong>in</strong>dung zum Verwalter verwendet wird. Dann kann die Steuerung der Kommunikationshardware<br />

vollständig durch das RCM erfolgen und die Integration <strong>in</strong> das Laufzeitsystem des Geräts ist m<strong>in</strong>imal.<br />

Bei der prototypischen Realisierung wurden jedoch Geräte verwendet, die nur e<strong>in</strong>e Kommunikationsschnittstelle<br />

bereitstellen und die auch für die Anwendung zur Verfügung stehen soll. Die Erkennung<br />

und Auswertung der Paketstruktur wurde daher stromorientiert implementiert und <strong>in</strong> den Treiber der<br />

Kommunikationsschnittstelle <strong>in</strong>tegriert. Dadurch können Nachrichten an das RCM aus dem restlichen<br />

Nachrichtenstrom herausgefiltert werden. Die ankommenden Daten werden dazu nach e<strong>in</strong>er speziellen<br />

Signatur überprüft, die anzeigt, dass es sich um e<strong>in</strong> Paket für das RCM handelt.<br />

4.5.7.2 Ausführung der Operationen<br />

Der nächste Schritt ist die Ausführung der Befehle. Dies muss wiederum mit dem Laufzeitsystem<br />

koord<strong>in</strong>iert werden. Die Realisierung ist davon abhängig, ob das Laufzeitsystem mehrere nebenläufige<br />

Aktivitätsträger anbietet und von welcher Seite die Interaktion gestartet wurde.<br />

Initiiert der Verwalter die Interaktion, so stellt sie e<strong>in</strong> asynchrones Ereignis für den verwalteten<br />

Knoten dar. Der Knoten muss auf solche Ereignisse vorbereitet se<strong>in</strong>, um die Befehle des Verwalters<br />

verarbeiten zu können. Bei der Realisierung hat man verschiedene Möglichkeiten. Die Ausführung<br />

der Operationen kann beispielsweise direkt nach dem Empfangen der Nachricht gestartet werden. Sie<br />

wird dann noch im Kontext der Unterbrechungsbehandlung ausgeführt und der aktive Thread bleibt<br />

unterbrochen. Alternativ kann man auch e<strong>in</strong>en neuen Thread beziehungsweise Task erstellen und diesen<br />

zur Verarbeitung e<strong>in</strong>reihen, sodass er zu e<strong>in</strong>em späteren Zeitpunkt vom regulären Scheduler aktiviert<br />

wird.<br />

Wie bereits <strong>in</strong> Abschnitt 4.4.2.3 aufgezeigt, hat der zweite Ansatz <strong>in</strong> Systemen wie T<strong>in</strong>yOS Vorteile.<br />

T<strong>in</strong>yOS bietet nur e<strong>in</strong>en Aktivitätsträger, daher wird bei diesem Vorgehen die Operation nicht nebenläufig<br />

zu e<strong>in</strong>er aktiven Aufgabe abgearbeitet. Bietet die Laufzeitunterstützung jedoch die nebenläufige<br />

Abarbeitung von mehreren Aufgaben an, so ist dieser Vorteil nicht unbed<strong>in</strong>gt gegeben. Wird außerdem<br />

e<strong>in</strong>e verdrängende E<strong>in</strong>planungsstrategie verwendet, so muss man für e<strong>in</strong>e geeignete Koord<strong>in</strong>ierung<br />

sorgen, sodass ke<strong>in</strong>e ungültigen Zwischenzustände der Veränderungen sichtbar werden.<br />

Geht die Interaktion vom verwalteten Gerät aus, so erfolgt sie synchron im Rahmen e<strong>in</strong>er Unterstützungsanforderung.<br />

Der aktuelle Thread ist daher unterbrochen und muss nach erfolgreicher<br />

Unterstützung durch den Verwalter transparent fortgesetzt werden. In Systemen wie T<strong>in</strong>yOS kann<br />

<strong>in</strong> diesem Fall die zweite der oben beschriebenen Möglichkeiten nicht angewandt werden. Da nur<br />

e<strong>in</strong> Aktivitätsträger angeboten wird, könnte die Abarbeitung der Verwaltungsoperationen durch e<strong>in</strong>en<br />

neuen Task erst aktiviert werden, wenn der aktuelle Task beendet wurde. Um diese Verklemmung zu<br />

vermeiden, muss die Abarbeitung entweder direkt im Rahmen der Unterbrechungsbehandlung oder<br />

durch den aktuellen Task selbst durchgeführt werden. Bei Laufzeitsystemen, die mehrere nebenläufige<br />

Ausführungen unterstützen, ist diese E<strong>in</strong>schränkung nicht gegeben und man hat drei Varianten zur<br />

Auswahl. Abbildung 4.21 stellt diese nebene<strong>in</strong>ander dar.<br />

4.5.7.3 Speicherbedarf<br />

Im Rahmen der prototypischen Implementierungen zu dieser Arbeit wurde e<strong>in</strong> RCM für verschiedene<br />

Systeme entwickelt. Tabelle 4.5 zeigt den Speicherbedarf der Beispielimplementierung. Das RCM wird<br />

86

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!