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

4.5.3 Modulverwaltung<br />

Nach der Erzeugung der Module ist es die Aufgabe der Kontrollschicht festzulegen, welche Module<br />

mite<strong>in</strong>ander verbunden werden sollen. Die Basisschicht stellt hierzu Modulbehälter (Repositories) zur<br />

Verfügung, um e<strong>in</strong>e Menge von zusammengehörenden Modulen mite<strong>in</strong>ander zu verb<strong>in</strong>den. Für solche<br />

Behälter s<strong>in</strong>d Operationen vorhanden, um Module h<strong>in</strong>zuzufügen, zu entfernen oder auszutauschen.<br />

Beim H<strong>in</strong>zufügen neuer Module werden die Abhängigkeiten der Module <strong>in</strong>nerhalb des Behälters<br />

aufgelöst, das heißt, die Zielsymbole der Relokationen werden mit endgültigen Symbolen anderer<br />

Module im Behälter verbunden. Bei anderen Operationen werden die Verb<strong>in</strong>dungen entsprechend<br />

angepasst.<br />

Durch diese Verknüpfung entsteht implizit der Abhängigkeitsgraph. So kann an jedem Modul<br />

nachgeprüft werden, ob e<strong>in</strong>e Abhängigkeit offen ist oder ob e<strong>in</strong> Modul bekannt ist, welches die<br />

Abhängigkeit erfüllt. Darüber h<strong>in</strong>aus verwaltet jeder Behälter e<strong>in</strong>e Liste mit E<strong>in</strong>sprungpunkten.<br />

Modulbehälter werden zum Beispiel verwendet, um unterschiedliche Versionen e<strong>in</strong>er Software zu<br />

verwalten. Die Module e<strong>in</strong>er Version sollen mite<strong>in</strong>ander verbunden werden, jedoch dürfen die Module<br />

unterschiedlicher Versionen nicht zusammen <strong>in</strong> e<strong>in</strong>en Behälter. Auch bei der Verwaltung von Modulen<br />

für verschiedene Architekturen, wie es beispielweise bei Fernaufrufen vorkommen kann, werden<br />

Behälter e<strong>in</strong>gesetzt.<br />

4.5.4 Konfigurations- und Abbildverwaltung<br />

Die Komponente ImageManager ist die Schnittstelle für die Konfiguration e<strong>in</strong>es Knotens. Sie<br />

verwaltet die Module, die auf e<strong>in</strong>em Knoten <strong>in</strong>stalliert s<strong>in</strong>d. Dazu verwaltet sie Metadaten über das<br />

Speicherlayout und die Speichernutzung e<strong>in</strong>es Knotens und überprüft bei e<strong>in</strong>er Veränderung die<br />

Konsistenz der entstehenden Konfiguration.<br />

4.5.4.1 Konsistenzprüfung<br />

Die Konsistenzprüfung muss die E<strong>in</strong>haltung der <strong>in</strong> Abschnitt 4.3 vorgestellten Bed<strong>in</strong>gungen bei der<br />

Installation und beim Entfernen von Modulen sicherstellen. Dadurch wird gewährleistet, dass die<br />

Abhängigkeiten zwischen den Modulen auf e<strong>in</strong>em verwalteten Gerät immer erfüllt s<strong>in</strong>d und somit e<strong>in</strong>e<br />

konsistente Konfiguration vorliegt.<br />

Vor e<strong>in</strong>er Operation werden (beispielsweise durch die Kontrollschicht) die Module ausgewählt,<br />

die entfernt und <strong>in</strong>stalliert werden sollen. Die Modulauswahl wird <strong>in</strong> der Basisschicht durch den<br />

Modulstatus gekennzeichnet. E<strong>in</strong> Modul bekommt daher entweder den Zustand SEL4INST oder<br />

SEL4REM, je nachdem ob es <strong>in</strong>stalliert oder entfernt werden soll. Die Konsistenzprüfung nutzt den<br />

implizit erstellten Abhängigkeitsgraphen, um die Gültigkeit der Auswahl festzustellen. Um Probleme<br />

bei e<strong>in</strong>er ungültigen Auswahl besser darzustellen und der Kontrollschicht die Möglichkeit zu geben,<br />

e<strong>in</strong>en <strong>in</strong>krementellen Prozess anzubieten, werden die Zustände <strong>in</strong> je zwei Unterzustände unterteilt:<br />

OK Die Zustände SEL4INST_OK und SEL4REM_OK bedeuten, dass das Modul ke<strong>in</strong>e Probleme bereitet.<br />

Die Abhängigkeiten s<strong>in</strong>d erfüllt beziehungsweise das Modul wird nicht mehr referenziert.<br />

ERR S<strong>in</strong>d nicht alle Abhängigkeiten erfüllt oder wird das Modul auf dem Gerät noch referenziert,<br />

so erhalten die Module die Zustände SEL4INST_ERR beziehungsweise SEL4REM_ERR. Die<br />

Abhängigkeiten von beziehungsweise zu Modulen mit diesen Zuständen sollten überprüft werden,<br />

um e<strong>in</strong>e gültige Auswahl herzustellen.<br />

79

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!