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

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

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

4.5.1.2 Aufbau<br />

E<strong>in</strong> Modulobjekt be<strong>in</strong>haltet neben den b<strong>in</strong>ären Daten noch Metadaten, welche zum e<strong>in</strong>en den Inhalt<br />

beschreiben und zum anderen benötigt werden, um die B<strong>in</strong>ärdaten an variablen Adressen im Speicher<br />

ablegen zu können. Der Aufbau der e<strong>in</strong>zelnen Typen ähnelt sich stark, da im Wesentlichen die gleichen<br />

Daten abgespeichert werden. Daten- und Funktionsmodule unterscheiden sich im Grunde nur durch<br />

den Typ. Zwischen E<strong>in</strong>zel- und Multisymbolmodule s<strong>in</strong>d die Unterschiede deutlicher, da sich die<br />

Metadaten im Umfang unterscheiden. Folgende Daten gehören zu e<strong>in</strong>em Modulobjekt:<br />

Name Jedes Modul ist durch e<strong>in</strong>en Namen identifizierbar. Bei E<strong>in</strong>zelsymbolmodulen entspricht der<br />

Name dem Symbolnamen des E<strong>in</strong>sprungpunkts, sonst wird der Name der Sektion zusammen mit<br />

dem Date<strong>in</strong>amen verwendet.<br />

B<strong>in</strong>ärdaten Jedes Modul enthält die b<strong>in</strong>ären Daten, die durch das Modul beschrieben und verwaltet<br />

werden. B<strong>in</strong>äre Daten werden dabei durch e<strong>in</strong> spezielles Objekt (Memory) verwaltet und repräsentiert,<br />

welches e<strong>in</strong>en zusammenhängenden untypisierten Speicherbereich darstellt.<br />

E<strong>in</strong> Modul enthält auf diese Weise die ungebundenen B<strong>in</strong>ärdaten und, nachdem das Modul für<br />

e<strong>in</strong>e bestimmte Anwendung gebunden wurde, auch e<strong>in</strong>e Kopie der B<strong>in</strong>ärdaten <strong>in</strong> gebundener<br />

Form.<br />

Bei Funktionsmodulen dient das Speichern der gebundenen B<strong>in</strong>ärdaten lediglich der Optimierung,<br />

da alle notwendigen Informationen, um aus den ungebundenen Daten die gebundenen<br />

Daten zu erstellen, am Modul ablesbar s<strong>in</strong>d. Bei Datenmodulen h<strong>in</strong>gegen werden die gebundenen<br />

Daten durch e<strong>in</strong>ige Operationen mit den aktuellen Werten vom verwalteten Knoten aktualisiert.<br />

So wird beim Entfernen e<strong>in</strong>es Datenmoduls dort der Zustand abgelegt. Dadurch kann e<strong>in</strong>e<br />

Variable später wieder mit dem gespeicherten Wert <strong>in</strong>stalliert werden. Die ungebundenen Daten<br />

entsprechen dem Anfangswert der Variablen und werden beispielsweise bei e<strong>in</strong>em erneuten<br />

Aufsetzen der Anwendung verwendet.<br />

Symbole Jedes Modul enthält e<strong>in</strong>e Liste von Symbolen, die bestimmte Stellen <strong>in</strong>nerhalb der B<strong>in</strong>ärdaten<br />

beschreiben. Die Symbole beschreiben dabei die E<strong>in</strong>sprungpunkte <strong>in</strong> die b<strong>in</strong>ären Daten.<br />

E<strong>in</strong>zelsymbolmodule enthalten nur e<strong>in</strong> öffentliches Symbol. E<strong>in</strong> Multisymbolmodul enthält<br />

mehrere öffentliche Symbole.<br />

Abhängigkeiten Jedes Modul stellt auch e<strong>in</strong>e Liste mit Symbolen bereit, die erfüllt se<strong>in</strong> müssen, um<br />

das Modul e<strong>in</strong>zusetzen. Dazu wird auch je e<strong>in</strong>e Relokation gespeichert, welche beschreibt, wie<br />

und an welcher Stelle die Adresse des Symbols verwendet werden soll.<br />

Architektur Für jedes Modul ist darüber h<strong>in</strong>aus vermerkt, für welche Architektur die enthaltenen<br />

b<strong>in</strong>ären Daten geeignet s<strong>in</strong>d.<br />

Zustand E<strong>in</strong> Modul besitzt e<strong>in</strong>en Zustand, der angibt, wie das Modul gerade verwendet wird. Tabelle<br />

4.3 zeigt die möglichen Zustände. Auf die Bedeutung der Zustände und die möglichen Übergänge<br />

wird <strong>in</strong> Abschnitt 4.5.4.1 e<strong>in</strong>gegangen.<br />

4.5.2 Verarbeiten von ELF-Dateien und Erzeugen von Modulen<br />

Die prototypische Realisierung ist <strong>in</strong> der Lage, Objektdateien im ELF-Format e<strong>in</strong>zulesen und zu<br />

verarbeiten. Nach der Verarbeitung werden Modulobjekte erzeugt, die ke<strong>in</strong>e ELF-spezifischen Informationen<br />

mehr enthalten. Es ist somit pr<strong>in</strong>zipiell auch möglich, e<strong>in</strong> entsprechendes Verfahren für andere<br />

B<strong>in</strong>ärformate zu erstellen.<br />

76

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!