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.

4.5 Aufbau und Architektur<br />

Zustand<br />

UNDEFINED<br />

LOADED<br />

SEL4INST<br />

SEL4REM<br />

INSTALLED<br />

Beschreibung<br />

Das Modul ist dem Verwalter unbekannt. Es wurde noch nicht <strong>in</strong> e<strong>in</strong>en Behälter<br />

geladen.<br />

Das Modul wurde <strong>in</strong> e<strong>in</strong>en Behälter geladen.<br />

Das Modul ist zur Installation ausgewählt. Hiervon gibt es zwei Unterzustände,<br />

je nachdem, ob alle Abhängigkeiten des Moduls erfüllt s<strong>in</strong>d. E<strong>in</strong>e Abhängigkeit<br />

ist erfüllt, wenn e<strong>in</strong> Verweis auf e<strong>in</strong> externes Symbol <strong>in</strong>nerhalb des Behälters<br />

aufgelöst werden kann und das entsprechende Zielmodul ebenfalls ausgewählt<br />

oder <strong>in</strong>stalliert ist.<br />

ERR Das Modul kann noch nicht <strong>in</strong>stalliert werden, da noch nicht alle<br />

Abhängigkeiten erfüllt s<strong>in</strong>d.<br />

OK Alle Abhängigkeiten s<strong>in</strong>d erfüllt, das Modul kann <strong>in</strong>stalliert werden.<br />

Das Modul soll vom Gerät entfernt werden. Auch hiervon gibt es zwei Unterzustände,<br />

die angeben, ob das Modul noch benötigt wird oder nicht.<br />

ERR Das Modul wird auf dem Gerät noch benötigt und kann daher nicht<br />

entfernt werden.<br />

OK Es existieren ke<strong>in</strong>e Referenzen mehr auf das Modul, es kann daher<br />

gefahrlos entfernt werden.<br />

Das Modul ist auf dem Gerät <strong>in</strong>stalliert.<br />

Tabelle 4.3: Modulzustände<br />

Die Tabelle zeigt die Zustände, die e<strong>in</strong> Modul während der Konfiguration erhalten kann. Der Übergang zwischen den<br />

Zuständen ist <strong>in</strong> Abbildung 4.17 dargestellt<br />

4.5.2.1 ELFFile<br />

Das Laden e<strong>in</strong>er Objektdatei wird beim Erzeugen e<strong>in</strong>es Objekts vom Typ ELFFile durchgeführt.<br />

Beim E<strong>in</strong>lesen wird die Objektdatei analysiert und <strong>in</strong> ihre Bestandteile aufgetrennt. Jede Sektion<br />

wird dabei entsprechend ihres Typs <strong>in</strong> e<strong>in</strong> Objekt abgelegt. Die e<strong>in</strong>zelnen Elemente von Symbol- und<br />

Relokationstabellen werden ebenfalls <strong>in</strong> e<strong>in</strong>zelne Java-Objekte umgewandelt. Verknüpfungen zwischen<br />

den Sektionen werden dabei aufgelöst oder als Verknüpfung zwischen den Objekten dargestellt. So<br />

wird der Name von Symbolen und Sektionen aus der Str<strong>in</strong>gtabelle extrahiert und die Zielsymbole der<br />

Relokationen als Referenz auf das Symbolobjekt dargestellt.<br />

Diese Struktur stellt die Ausgangbasis für die Extraktion von Modulen dar. Dabei stehen Sektionen<br />

mit b<strong>in</strong>ären Daten im Mittelpunkt, die <strong>in</strong> ELF-Dateien mit dem Typ SHT_PROGBITS gekennzeichnet<br />

s<strong>in</strong>d. Relokationen und Symbole beziehen sich auf solche Sektionen und werden daher im Rahmen des<br />

E<strong>in</strong>lesens auch den entsprechenden Sektionen zugeordnet.<br />

4.5.2.2 ELFSectionExtractor<br />

Nach dem E<strong>in</strong>lesen erfolgt die Aufteilung <strong>in</strong> e<strong>in</strong>zelne Module. Dazu ist der ELFSectionExtractor<br />

zuständig, der e<strong>in</strong>e Implementierung des <strong>in</strong> Abschnitt 4.2.5 vorgestellten Verfahrens darstellt. Als<br />

Grundlage für e<strong>in</strong> Modul können pr<strong>in</strong>zipiell alle Sektionen dienen, die b<strong>in</strong>äre Daten enthalten, also<br />

vom ELF-Typ SHT_PROGBITS s<strong>in</strong>d. Allerd<strong>in</strong>gs sollen Module nur von solchen Sektionen erzeugt<br />

werden, die zum Programmabbild gehören und somit entweder Programmcode oder -daten enthalten<br />

und nicht andere b<strong>in</strong>äre Zusatzdaten wie beispielsweise Debug<strong>in</strong>formationen. Diese Filterung lässt<br />

sich zum Beispiel am Namen der Sektionen festmachen. Im ELF-Format kann man dafür auch auf<br />

77

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!