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.

5.1 Konfigurationsf<strong>in</strong>dung<br />

dabei durch Änderungskommandos, wie sie durch übliche Vergleichsalgorithmen erzeugt werden<br />

(zum Beispiel UNIX-diff [HM76] oder Xdelta [Mac00]) ausgedrückt und dann <strong>in</strong> e<strong>in</strong>er Nachricht zum<br />

verwalteten Knoten übertragen werden. Der verwalteten Knoten muss dann allerd<strong>in</strong>gs <strong>in</strong> der Lage se<strong>in</strong>,<br />

die Änderungskommandos auszuführen.<br />

Die Datenmenge muss für die e<strong>in</strong>zelnen Operationen getrennt betrachtet werden. Beim bedarfsgesteuerten<br />

Installieren müssen neben der aufgerufenen Funktion auch ihre Abhängigkeiten bereitgestellt<br />

werden. Hierbei besteht die Wahl, abhängige Funktionen zu <strong>in</strong>stallieren oder lediglich Stellvertreter zu<br />

verwenden. Durch den E<strong>in</strong>satz von Stellvertretern wird die Datenmenge reduziert, allerd<strong>in</strong>gs ist dann<br />

möglicherweise e<strong>in</strong> erneutes Nach<strong>in</strong>stallieren notwendig, wodurch e<strong>in</strong>e weitere Unterbrechung der<br />

Ausführung stattf<strong>in</strong>det und die Anzahl an Kommunikationsvorgängen <strong>in</strong>sgesamt erhöht wird.<br />

Beim Parken von Modulen muss der Zustand von veränderlichen Datenmodulen beim Verwalter<br />

gesichert werden. Dabei s<strong>in</strong>d im Allgeme<strong>in</strong>en weniger Daten zu übertragen als beim Installieren, da<br />

Code und konstante Datenmodule nicht gesichert werden müssen.<br />

Beim Ersetzen oder Aktualisieren der Module setzt sich die zu übertragende Datenmenge aus der<br />

Größe des alten Zustands zuzüglich den Daten der neuen Module zusammen. Neben der Datenmenge<br />

spielt hierbei aber auch die Verknüpfung des Codes e<strong>in</strong>e Rolle. Wird e<strong>in</strong>e Funktion beispielsweise<br />

nicht an der Adresse <strong>in</strong>stalliert, an der ihr Stellvertreter war und wird auch ke<strong>in</strong>e Weiterleitung<br />

verwendet, so müssen alle Verweise angepasst werden. Je nach e<strong>in</strong>gesetztem Kommunikationsprotokoll<br />

kann das zu e<strong>in</strong>er Reihe zusätzlicher Kommunikationsvorgängen führen. Das Installieren e<strong>in</strong>er stark<br />

verknüpften Funktion wird daher teurer se<strong>in</strong> als der Austausch e<strong>in</strong>er kaum referenzierten Funktion.<br />

Besonders stark schlägt sich das nieder, wenn auf dem verwalteten Gerät nur blockweise auf den<br />

Programmspeicher geschrieben werden kann, wie das beispielsweise bei AVR-Prozessoren der Fall ist.<br />

Bei starker Verknüpfung müssen viele Blöcke verändert werden.<br />

5.1.1.2 Kostenbe<strong>in</strong>flussende Faktoren bei e<strong>in</strong>em Fernaufruf<br />

Bei e<strong>in</strong>em Fernaufruf müssen für jeden Aufruf die Parameter übertragen werden. Die Datenmenge<br />

hängt dabei von der Anzahl und der Größe der Parameter ab, die direkt für den Aufruf mitgegeben<br />

werden. Außerdem trägt der Rückgabewert zur Datenmenge bei.<br />

Wie <strong>in</strong> Abschnitt 4.6.4 erläutert wurde, müssen neben den expliziten Parametern auch Daten<br />

übertragen werden, um am Zielknoten e<strong>in</strong>e Ausführungsumgebung aufzubauen. Daher könnte man alle<br />

Datenstrukturen, die zur Ausführung der Funktion benötigt werden, als implizite Parameter bezeichnen.<br />

Bei diesen zusätzlichen Daten ist zu unterscheiden, ob es sich um veränderbare oder um konstante<br />

Daten handelt. Konstante Daten müssen nicht übertragen werden, da am Verwalterknoten e<strong>in</strong>e Kopie<br />

verwendet werden kann.<br />

Bei den veränderbaren Daten muss man zwischen Daten unterscheiden, die ausschließlich von der<br />

Funktion benötigt werden und Daten, welche mit anderen Funktionen geme<strong>in</strong>sam genutzt werden. In<br />

beiden Fällen müssen sie zur Ausführung der Funktion am Verwalter vorhanden se<strong>in</strong>. Allerd<strong>in</strong>gs müssen<br />

Daten, welche ausschließlich von der Funktion genutzt werden, nicht bei jedem Aufruf aktualisiert und<br />

bei Veränderung wieder zum Gerät zurückgeschrieben werden.<br />

Unter Berücksichtigung dieses Umstands kann man die Datenmenge, die bei jedem Aufruf übertragen<br />

werden muss, reduzieren, <strong>in</strong>dem man Funktionen, welche auf geme<strong>in</strong>samen Daten arbeiten, geme<strong>in</strong>sam<br />

auslagert. Dadurch wird der Anteil der Daten, die an verschiedenen Orten benötigt werden, reduziert<br />

und die Kosten für das Erstellen der Ausführungsumgebung gesenkt. Das Auslagern e<strong>in</strong>er weiteren<br />

Funktion kann somit die Kosten reduzieren.<br />

E<strong>in</strong>e ausgelagerte Funktion kann natürlich auch weitere Funktionen aufrufen. Hierbei ist die Entscheidung<br />

zu treffen, an welchem Ort diese Funktionen ausgeführt werden sollen. Ist die Zielfunktion<br />

99

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!