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.2 Modularisierung<br />

das Betriebssystem e<strong>in</strong>en Prozess zum Beispiel wegen e<strong>in</strong>es Fehlers beendet. In diesen Dateien<br />

wird der Speicher- und Register<strong>in</strong>halt festgehalten. Sie dienen hauptsächlich der Fehleranalyse<br />

und s<strong>in</strong>d für unsere Betrachtungen nicht relevant und daher nur zur Vollständigkeit angeführt.<br />

Für unsere Zwecke muss der Code an verschiedenen Adressen verwendbar se<strong>in</strong>. Daher s<strong>in</strong>d besonders<br />

relokierbare Objektdateien <strong>in</strong>teressant. Die endgültige Position des Codes ist dort noch nicht festgelegt,<br />

somit kann er noch an verschiedene Adressen gebunden werden. Außerdem kann positionsunabhängiger<br />

Code, wie er häufig <strong>in</strong> geme<strong>in</strong>sam genutzten Bibliotheken vorkommt, genutzt werden. Ausführbare<br />

Programmdateien s<strong>in</strong>d zur Darstellung von Modulen nur geeignet, wenn sie ebenfalls positionsunabhängigen<br />

Code enthalten. Meistens ist der enthaltene Code jedoch nur an festgelegten Adressen<br />

verwendbar. Man kann sie dann allerd<strong>in</strong>gs nutzen, um den Grundzustand e<strong>in</strong>es Knotens darzustellen,<br />

wie <strong>in</strong> Abschnitt 4.5.4.2 erwähnt wird.<br />

4.2.4.2 Inhalt und Aufbau<br />

Bei vielen B<strong>in</strong>ärformaten s<strong>in</strong>d die b<strong>in</strong>ären Daten <strong>in</strong> Blöcke unterteilt, welche Sektionen genannt werden.<br />

So gibt es m<strong>in</strong>destens e<strong>in</strong>e Sektion, welche den B<strong>in</strong>ärcode enthält (meist als .text bezeichnet)<br />

und e<strong>in</strong>e andere Sektion, welche die <strong>in</strong>itialisierten Daten enthält (meist mit dem Namen .data<br />

gekennzeichnet). Daneben gibt es oft noch e<strong>in</strong>e Sektion, welche nicht-<strong>in</strong>itialisierte Daten beschreibt<br />

(die .bss Sektion).<br />

Abbildung 4.2: Ablauf beim B<strong>in</strong>den e<strong>in</strong>es Programms<br />

Die e<strong>in</strong>zelnen Sektionen aus den verschiedenen Objektdateien werden zu e<strong>in</strong>em ausführbaren Programm gebunden.<br />

Dabei werden die e<strong>in</strong>zelnen Sektionen mite<strong>in</strong>ander “verschmolzen”.<br />

Beim Erstellen e<strong>in</strong>es Programms werden die Sektionen von mehreren relokierbaren Objektdateien<br />

von e<strong>in</strong>em B<strong>in</strong>der zu e<strong>in</strong>er ausführbaren Datei zusammengebunden (Abbildung 4.2). Dabei wird e<strong>in</strong><br />

B<strong>in</strong>der für die entsprechende Zielarchitektur verwendet, der fest legt, an welcher Adresse e<strong>in</strong>e Sektion<br />

aus e<strong>in</strong>er Objektdatei im endgültigen Programm liegen soll [Lev99].<br />

Neben den b<strong>in</strong>ären Daten enthalten die B<strong>in</strong>ärdateien noch zusätzliche Informationen. Ausführbare<br />

Programmdateien enthalten beispielsweise noch Informationen wie aus den Daten e<strong>in</strong> Prozessabbild zu<br />

erstellen ist, also wo die e<strong>in</strong>zelnen Sektionen abzulegen s<strong>in</strong>d. Da uns hauptsächlich die Objektdateien<br />

<strong>in</strong>teressieren, betrachten wir diese etwas genauer. Hier s<strong>in</strong>d Informationen enthalten, die das B<strong>in</strong>den<br />

des relokierbaren Codes ermöglichen. Die Art und Weise, wie diese Informationen gespeichert werden,<br />

hängt von dem verwendeten B<strong>in</strong>ärdateiformat ab. Die Art der Daten ist jedoch immer sehr ähnlich. So<br />

enthalten relokierbare Objektdateien neben dem Masch<strong>in</strong>encode und den b<strong>in</strong>ären, <strong>in</strong>itialisierten Daten<br />

vor allem Symboltabellen, Str<strong>in</strong>gtabellen, Relokations- und Debug<strong>in</strong>formationen.<br />

Symboltabellen E<strong>in</strong> Symbol ordnet e<strong>in</strong>er Position im B<strong>in</strong>ärcode e<strong>in</strong>en Namen zu. Dies dient vor<br />

allem der Verknüpfung zwischen verschiedenen Objektdateien. Als Ziel e<strong>in</strong>es Verweises wird<br />

nicht die Position angegeben, sondern e<strong>in</strong> Symbol, da die endgültige Position (=Adresse) noch<br />

43

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!