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.3 Basismechanismen zur Modulverwaltung<br />

Das eigentliche Entfernen e<strong>in</strong>es unbenutzten Moduls ist anschließend relativ e<strong>in</strong>fach. Dazu muss<br />

lediglich der Speicherbereich, der durch das Modul belegt wird, der Speicherverwaltung als frei<br />

gemeldet werden. Damit steht der Speicher wieder für andere Aufgaben zur Verfügung. Falls die<br />

Speicherverwaltung vom Verwalter durchgeführt wird, ist nicht e<strong>in</strong>mal e<strong>in</strong>e Interaktion mit dem Gerät<br />

notwendig.<br />

Die eigentliche Aufgabe liegt jedoch dar<strong>in</strong>, sicherzustellen, dass das Modul tatsächlich nicht mehr<br />

erforderlich ist. Das ist der Fall, wenn das Modul auf dem Knoten nicht mehr referenziert wird. Möglichkeiten<br />

und Probleme, dies festzustellen, s<strong>in</strong>d <strong>in</strong> Abschnitt 4.4 beschrieben. Da das Entfernen e<strong>in</strong>es<br />

Moduls immer als Teiloperation <strong>in</strong> Zusammenhang mit e<strong>in</strong>er anderen Operation e<strong>in</strong>gesetzt wird, ist die<br />

Abhängigkeitsprüfung nicht die Aufgabe dieses Mechanismus. Im Rahmen von anderen Operationen<br />

wird manchmal Code entfernt, obwohl er zu diesem Zeitpunkt streng genommen noch referenziert wird.<br />

Die anfordernde Operation trägt daher die Verantwortung dafür, dass ke<strong>in</strong>e Abhängigkeiten verletzt<br />

werden.<br />

4.3.3 <strong>Dynamische</strong>s Austauschen von Modulen<br />

Das Austauschen von Modulen ist e<strong>in</strong>e weitere wichtige Operation. Sie kann für vielfältige Szenarios<br />

genutzt werden. So stellt das Austauschen e<strong>in</strong>er Funktion durch e<strong>in</strong>en Stellvertreter die Basis für<br />

das dynamische Auslagern und Parken von Funktionen dar. Mit dem Austauschen des Stellvertreters<br />

durch die eigentliche Funktion wird auch das bedarfsgesteuerte Installieren realisiert. Des Weiteren<br />

kann man durch das Austauschen e<strong>in</strong>er Funktion e<strong>in</strong>e Ersetzungsoperation erstellen, die es erlaubt,<br />

Programmteile dynamisch zu aktualisieren.<br />

Im Gegensatz zu Funktionsmodulen ist der Austausch von Datenmodulen ohne zusätzliches anwendungsspezifisches<br />

Wissen selten s<strong>in</strong>nvoll. Funktionsmodule verwalten e<strong>in</strong>en konstanten Inhalt, den<br />

Code. Bei Datenmodulen gilt das nur für nur-lesbare Daten. Die meisten durch Datenmodule repräsentierten<br />

Speicherstellen werden jedoch während der Programmabarbeitung verändert. E<strong>in</strong> Datenmodul<br />

repräsentiert somit zwar die Position und die Struktur, jedoch immer nur e<strong>in</strong>e Momentaufnahme der<br />

tatsächlichen Daten. Das Austauschen von Datenmodulen wird daher nur im Rahmen des Ersetzens<br />

oder Aktualisierens (siehe Abschnitt 4.6.3) e<strong>in</strong>gesetzt, da hier Wissen über die Bedeutung und Verwendung<br />

der Daten vorliegt. Dennoch können beim Austauschen von Funktionen zusätzliche Datenmodule<br />

<strong>in</strong>stalliert oder <strong>in</strong>stallierte Module vollständig entfernt werden. Dies entspricht jedoch nicht dem<br />

dynamischen Austauschen, da ke<strong>in</strong>e Verweise von e<strong>in</strong>em Datenmodul auf e<strong>in</strong> anderes umgeschrieben<br />

werden.<br />

Das generelle Vorgehen beim Austauschen ist <strong>in</strong> Abbildung 4.11 dargestellt. Zunächst müssen<br />

alle Verweise auf das Modul gefunden werden, um sie anzupassen. Details zum Auff<strong>in</strong>den von<br />

Anhängigkeiten und Grenzen der Verfahren werden im nächsten Abschnitt geschildert. Wenn alle<br />

Verweise identifiziert werden konnten, wird das neue Modul <strong>in</strong>stalliert. Anschließend erfolgt die<br />

Anpassung der Verknüpfungen, sodass Verweise auf das alte Modul nun auf das neue Modul zeigen.<br />

Schließlich kann das alte Modul entfernt werden.<br />

Um den Speicherplatz, der durch das Entfernen des alten Moduls frei wird, gleich nutzen zu können,<br />

kann das Entfernen auch vor dem Installieren des neuen Moduls durchgeführt werden. Das Austauschen<br />

als Gesamtoperation darf dann jedoch nicht unterbrochen werden, da sich das System währenddessen<br />

<strong>in</strong> e<strong>in</strong>em <strong>in</strong>konsistenten Zustand bef<strong>in</strong>det.<br />

Bevor der Austausch allerd<strong>in</strong>gs begonnen wird, muss überprüft werden, ob nach dem Austausch<br />

e<strong>in</strong>e konsistente Konfiguration vorliegt. Hierzu muss zunächst darauf geachtet werden, dass beim<br />

Austausch e<strong>in</strong>es Moduls die Schnittstellen, welche von den noch vorhandenen Modulen verwendet<br />

werden, erfüllt s<strong>in</strong>d. Das heißt, dass Abhängigkeiten von <strong>in</strong>stallierten Modulen zu alten Modulen,<br />

63

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!