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.

2.3 Ansätze zur Benutzung und Steuerung entfernter Knoten<br />

ablaufen. Im Gegensatz zur schwachen Migration ist die Realisierung der starken Migration komplexer,<br />

da die Extraktion des Zustands e<strong>in</strong>er Anwendung oft sehr aufwendig ist.<br />

Als Zwischenlösung, um die Lücke zwischen den beiden Migrationsarten zu schließen, kann man<br />

durch Übergabe von Parametern bei schwacher Migration statt e<strong>in</strong>es festen, e<strong>in</strong>en variablen E<strong>in</strong>sprungpunkt<br />

simulieren. Die Anwendung wählt dabei vor der Migration die Prozedur aus, mit der sie nach<br />

der Migration aufgesetzt werden soll, und gibt diese Daten als Parameter der Startfunktion mit. Nach<br />

dem Aufsetzen wertet man diesen Parameter aus und spr<strong>in</strong>gt sofort zur angegebenen Funktion. Dabei<br />

geht zwar der Zustand verloren; er kann jedoch vor der Migration dazu genutzt werden, das weitere<br />

Vorgehen nach der Migration zu bee<strong>in</strong>flussen.<br />

Zustandstransfer<br />

Die Übertragung des Zustands spielt nur bei der starken Migration e<strong>in</strong>e Rolle. E<strong>in</strong> e<strong>in</strong>facher Ansatz zur<br />

Zustandsübertragung zwischen zwei gleichen Knoten ist, den betroffenen Speicherbereich zu sichern<br />

und am Zielknoten an derselben Stelle e<strong>in</strong>zuspielen. In e<strong>in</strong>em <strong>heterogenen</strong> System ist dieser Ansatz<br />

nicht zielführend. Hier müssen die Elemente des Ausführungszustands identifiziert, übertragen und <strong>in</strong><br />

e<strong>in</strong>er äquivalenten Form auf dem Zielrechner wieder aufgebaut werden. E<strong>in</strong>e Technik, dies automatisch<br />

zu ermöglichen, ist, den Aufrufstack und die lokalen Variablen durch e<strong>in</strong> Laufzeitsystem zu erfassen<br />

und <strong>in</strong> e<strong>in</strong>e architekturunabhängige Version zu überführen. Für Sprachen wie beispielsweise C++,<br />

die zur Laufzeit zu wenige Informationen bieten, um den architekturabhängigen Aufbau des Stacks<br />

zu erfassen, kann durch Compilerunterstützung der Code entsprechend verändert werden, um die<br />

benötigten Informationen zu sammeln [DR98].<br />

2.3.3 Laufzeitsysteme für verteilte Systeme<br />

Zur geme<strong>in</strong>samen Verwaltung und Nutzung der Ressourcen von mehreren Knoten bieten sich verteilte<br />

Betriebssysteme an. Diese bieten den Anwendungen Informationen und Mechanismen an, um die<br />

<strong>verteilten</strong> Ressourcen zu erkennen und zu nutzen. Dazu wird e<strong>in</strong> Programmiermodell def<strong>in</strong>iert, das<br />

den Umgang mit der Verteiltheit vere<strong>in</strong>heitlichen soll. Im Rahmen dessen kann auch e<strong>in</strong> Mechanismus<br />

angeboten werden, um den Ausführungsort zu bestimmen beziehungsweise zu wechseln.<br />

E<strong>in</strong>e andere Ausprägung ist e<strong>in</strong> sogenanntes S<strong>in</strong>gle System Image (SSI). Hierbei werden die vorhandenen<br />

Knoten als e<strong>in</strong> e<strong>in</strong>ziges homogenes System dargestellt. Realisiert werden solche Systeme häufig<br />

durch geme<strong>in</strong>samen <strong>verteilten</strong> Speicher (Distributed Shared Memory). Die Nutzung von speziellen<br />

Ressourcen, die nur an e<strong>in</strong>em Knoten zur Verfügung stehen, ist jedoch nicht immer möglich. Auch<br />

der E<strong>in</strong>fluss auf die tatsächliche Verteilung der Anwendung ist oft e<strong>in</strong>geschränkt. E<strong>in</strong> Beispiel e<strong>in</strong>es<br />

solchen Systems ist MagnetOS [LRW + 05], das e<strong>in</strong>e Java-Umgebung darstellt, die mehrere PDAs zu<br />

e<strong>in</strong>er e<strong>in</strong>zigen virtuellen Masch<strong>in</strong>e zusammenfasst.<br />

Neben Laufzeitsystemen für verteilte Systeme gibt es auch noch verteilte Laufzeitumgebungen. Sie<br />

betrachten jeden Knoten getrennt und bieten ke<strong>in</strong>e spezielle Unterstützung zur Kooperation an. Sie<br />

nutzen jedoch andere Knoten, um Dienste der Infrastruktur entfernt bereitzustellen [SGGB99].<br />

2.3.4 Fernwartungssysteme<br />

Zur Steuerung oder Verwaltung entfernter Knoten können Fernwartungssysteme e<strong>in</strong>gesetzt werden. E<strong>in</strong><br />

Beispiel hierfür ist das Projekt DIADEM (Distributed Application Independent Ma<strong>in</strong>tenance) [Her87].<br />

Das Ziel des Projekts war die Entwicklung e<strong>in</strong>es Systems zur komfortablen und flexiblen Fernwartung<br />

von Rechnern. Unter Fernwartung wurde das Austauschen und Installieren von Anwendungen auf e<strong>in</strong>er<br />

17

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!