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 />

semi-automatisch: Der Entwickler legt die Aufteilung des Programms <strong>in</strong> Overlays fest. Das Umschalten<br />

der jeweils benötigten Overlays wird jedoch automatisch durchgeführt.<br />

manuell: Der Entwickler muss nicht nur die Aufteilung der Software <strong>in</strong> Overlays manuell durchführen,<br />

sondern er muss darüber h<strong>in</strong>aus durch Anweisungen im Code dafür sorgen, dass das richtige<br />

Overlay e<strong>in</strong>gelagert ist, wenn es benötigt wird.<br />

Die automatische Überlagerung kann als Vorläufer der Seitenüberlagerung bei virtuellem Adressraum<br />

(pag<strong>in</strong>g) betrachtet werden. Hierbei stößt e<strong>in</strong>e Hardwaree<strong>in</strong>heit zur Adressumrechnung das E<strong>in</strong>lagern<br />

von Datenblöcken (Seiten) an, wenn auf Adressen zugegriffen wird, deren Speicherstelle momentan<br />

nicht im physikalischen Speicher repräsentiert ist.<br />

Im Vergleich zur automatischen Seitenüberlagerung, zur Bereitstellung e<strong>in</strong>es virtuellen Adressraums,<br />

hat die Überlagerungstechnik den Vorteil, dass sie ohne zusätzliche Hardwareunterstützung verwendet<br />

werden kann und somit für e<strong>in</strong>gebettete Systeme geeignet ist. Für Echtzeitanwendungen hat die<br />

(manuelle) Überlagerung außerdem den Vorteil, dass der Zeitbedarf für die Bereitstellung des benötigten<br />

Codes deutlich besser vorhergesagt werden kann als bei e<strong>in</strong>er transparenten Seitenüberlagerung im<br />

Rahmen von virtuellem Speicher.<br />

Der Nachteil ist allerd<strong>in</strong>gs, dass das Verfahren nicht transparent für den Softwareentwickler ist und<br />

er sich über die Größe der Overlays bewusst werden muss. Auch das F<strong>in</strong>den e<strong>in</strong>er optimalen Aufteilung<br />

<strong>in</strong> Overlays ist e<strong>in</strong>e nicht triviale Aufgabe.<br />

Im Rahmen dieser Arbeit wird e<strong>in</strong> System erstellt, das ähnliche Eigenschaften aufweist wie e<strong>in</strong>e<br />

automatische Überlagerungstechnik. Die Codeblöcke werden allerd<strong>in</strong>gs nicht auf dem Gerät gelagert,<br />

sondern bei Bedarf übertragen. Außerdem werden die Codeblöcke durch e<strong>in</strong>en dynamischen B<strong>in</strong>der<br />

angepasst, sodass sie an beliebigen Adressen e<strong>in</strong>gesetzt werden können.<br />

2.2 Ansätze zur dynamischen Modifikation von Anwendungen<br />

Im Folgenden sollen e<strong>in</strong>ige Ansätze zur nachträglichen Veränderung von Code zur Laufzeit vorgestellt<br />

werden. Die meisten Beispiele s<strong>in</strong>d dabei aus dem Umfeld der Sensornetze entnommen, da die Zielplattform<br />

kle<strong>in</strong>e ressourcenbeschränkte Knoten s<strong>in</strong>d. Weitere Systeme, die das dynamische Verändern<br />

von Code zur Laufzeit erlauben, s<strong>in</strong>d zum Beispiel bei Hicks [Hic01] zu f<strong>in</strong>den.<br />

2.2.1 Interpretergestützte Ausführung<br />

E<strong>in</strong>e Möglichkeit, die Anwendung flexibel zu erstellen, ist die Verwendung e<strong>in</strong>er Sprache, die erst<br />

zur Laufzeit <strong>in</strong>terpretiert wird. Das Vorgehen entspricht dem <strong>in</strong> Abschnitt 2.1.1.2 beschriebenen<br />

Zwischencode: E<strong>in</strong>e Anwendung besteht aus e<strong>in</strong>er Reihe von Befehlen, die durch e<strong>in</strong>en Interpreter<br />

gelesen, analysiert und umgesetzt werden. E<strong>in</strong>e Ausprägung dieses Ansatzes s<strong>in</strong>d Skriptsprachen,<br />

wie sie beispielsweise bei SensorWare [BHS03] e<strong>in</strong>gesetzt werden. Hier werden mobile Agenten, die<br />

für den E<strong>in</strong>satz auf PDAs gedacht s<strong>in</strong>d, <strong>in</strong> e<strong>in</strong>er TCL-ähnlichen Skriptsprache programmiert. E<strong>in</strong>e<br />

andere Ausprägung s<strong>in</strong>d virtuelle Masch<strong>in</strong>en, die häufig durch Interpreter realisiert s<strong>in</strong>d. E<strong>in</strong> Beispiel<br />

ist MagnetOS [LRW + 05], welches e<strong>in</strong>e verteilte Java Masch<strong>in</strong>e für PDAs bereitstellt. Für Sensornetze<br />

s<strong>in</strong>d die Systeme VM* [KP05b] und Maté [LC02] beispielhaft zu nennen.<br />

Neben der kompakten Darstellung des Codes ist als weiterer Vorteil das relativ e<strong>in</strong>fache Nachladen<br />

e<strong>in</strong>es Programms zur Laufzeit zu nennen. Abhängigkeiten zu anderen Programmmodulen oder zum<br />

Laufzeitsystem werden durch den Interpreter aufgelöst. Der Code wird dabei dem Interpreter <strong>in</strong> Form<br />

von Daten zur Verfügung gestellt. Speziell bei Harvard-Architekturen s<strong>in</strong>d dabei e<strong>in</strong>ige Besonderheiten<br />

12

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!