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.

2 Grundlagen und Techniken<br />

SOS [HKS + 05], e<strong>in</strong> Betriebssystem für Sensorknoten, welches das Nach<strong>in</strong>stallieren und Austauschen<br />

von Programmmodulen zur Laufzeit mithilfe von positionsunabhängigem Code realisiert.<br />

Durch dieses Verfahren kann das Modul im gebundenen B<strong>in</strong>ärcode zum Knoten übertragen und ohne<br />

weitere Vorbereitung an beliebiger Adresse e<strong>in</strong>gesetzt werden. Da die Aufrufe zu dem Modul <strong>in</strong>direkt<br />

über e<strong>in</strong>e Tabelle ausgeführt werden, ist auch das Austauschen des Programmmoduls e<strong>in</strong>fach, da lediglich<br />

die Adresse <strong>in</strong> der Tabelle anzupassen ist. Auf der anderen Seite ist die Indirektionsstufe auch e<strong>in</strong><br />

Nachteil, da das Auflösen zusätzlich Laufzeit benötigt. E<strong>in</strong> weiterer Nachteil ist, dass e<strong>in</strong>e Werkzeugkette<br />

benötigt wird, die positionsunabhängigen Code erstellen kann. Entsprechende Werkzeuge s<strong>in</strong>d<br />

allerd<strong>in</strong>gs nicht für alle Plattformen verfügbar. Für die MSP430 Mikrocontroller von Texas Instruments<br />

s<strong>in</strong>d beispielsweise ke<strong>in</strong>e Compiler verfügbar, um positionsunabhängigen Code zu erzeugen. Für AVR<br />

Mikrocontroller unterstützt der GCC diese Art der Codeerstellung. E<strong>in</strong> Programmmodul kann hier<br />

allerd<strong>in</strong>gs maximal 4 KByte groß se<strong>in</strong>, da das die maximale Entfernung für e<strong>in</strong>en relativen Sprung ist.<br />

2.2.3.2 Vorab-gebundene Programmmodule<br />

Um die E<strong>in</strong>schränkung von positionsunabhängigem Code zu vermeiden und dennoch die E<strong>in</strong>b<strong>in</strong>dung<br />

neuer Module möglichst e<strong>in</strong>fach zu gestalten, können Module verwendet werden, die bereits vor der<br />

Übertragung gebunden wurden. Somit ist ke<strong>in</strong> B<strong>in</strong>den auf dem Knoten erforderlich. Dafür müssen<br />

allerd<strong>in</strong>gs Informationen über alle vorhandenen Symbole auf dem externen Rechner vorhanden se<strong>in</strong>.<br />

Außerdem kann e<strong>in</strong> so vorbereitetes Modul nur für e<strong>in</strong> System verwendet werden, welches exakt dem<br />

Aufbau der gegebenen Symbol<strong>in</strong>formationen entspricht.<br />

Beispiele aus dem Bereich der Sensornetzwerke s<strong>in</strong>d frühe Versionen von Contiki [DGV04]. Teilweise<br />

kann auch der Baukasten für virtuelle Masch<strong>in</strong>en VM* [KP05b] <strong>in</strong> diese Kategorie e<strong>in</strong>geordnet<br />

werden, der die Erweiterung des Interpreters mittels extern gebundenen Modulen ermöglicht.<br />

2.2.3.3 Dynamisch gebundene Programmmodule<br />

Um die Module flexibler e<strong>in</strong>setzen zu können, kann man das B<strong>in</strong>den auch erst auf dem Knoten durchführen.<br />

E<strong>in</strong> Beispiel hierfür ist FlexCup [MGL + 06], e<strong>in</strong> im Rahmen des T<strong>in</strong>yCubus–Projekts [MLM + 05]<br />

entwickeltes Updatesystem für Sensorknoten. Auch bei neueren Versionen von Contiki [DFEV06]<br />

wird auf dynamisches B<strong>in</strong>den der Module gesetzt.<br />

Der Vorteil des Verfahrens ist, dass die Programmmodule nicht für e<strong>in</strong>e spezielle Speicherbelegung<br />

erstellt werden und somit auf mehreren Knoten e<strong>in</strong>gesetzt werden können, auch wenn sich diese leicht<br />

unterscheiden. Nachteil ist allerd<strong>in</strong>gs, dass nicht nur der B<strong>in</strong>der auf jedem Knoten vorhanden se<strong>in</strong> muss,<br />

sondern auch die Symbol<strong>in</strong>formationen. Ebenso müssen neue Symbol- und Relokations<strong>in</strong>formationen<br />

mit dem Modul zu jedem Knoten übertragen werden.<br />

2.2.4 Vergleich der Verfahren<br />

In Tabelle 2.1 werden die verschiedenen Ansätze anhand e<strong>in</strong>iger Kriterien mite<strong>in</strong>ander verglichen.<br />

Je weniger Infrastruktur am Knoten benötigt wird, desto mehr Speicherplatz steht für die eigentliche<br />

Software zur Verfügung. Interpreterbasierte Verfahren und dynamisches B<strong>in</strong>den benötigen beide<br />

umfangreichen Code oder Daten auf dem Knoten. Für das Anwenden von Änderungen ist weniger<br />

Code notwendig. Das E<strong>in</strong>spielen von exakt vorbereiteten Programmmodulen oder Speicherabbildern<br />

benötigt h<strong>in</strong>gegen am wenigsten Infrastruktur am Knoten.<br />

Betrachtet man die Menge der zu übertragenden Daten, so ist die Übertragung des gesamten<br />

Speicherabbildes das Maximum. E<strong>in</strong> guter Wert wird erreicht, wenn nur die veränderten b<strong>in</strong>ären<br />

14

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!