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.

5 Kontroll- und Verwaltungsschicht<br />

Variante ist, dass das Auff<strong>in</strong>den der Meta<strong>in</strong>formationen zu e<strong>in</strong>em bestimmten Aktivitätsträger sehr<br />

schnell durchgeführt werden kann, da die Informationen an e<strong>in</strong>er festen Stelle abgespeichert s<strong>in</strong>d.<br />

Sobald die Anzahl an Threads jedoch den festgelegten Maximalwert überschreitet, müsste das Feld zur<br />

Aufnahme der Meta<strong>in</strong>formationen vergrößert werden. Das ist jedoch nicht immer durchführbar, da nicht<br />

sichergestellt werden kann, dass genügend Speicherplatz an der Stelle vorhanden ist. Daher muss die<br />

Kontrollschicht über die Erzeugung e<strong>in</strong>es neuen Threads <strong>in</strong>formiert werden, sodass sie gegebenenfalls<br />

die Threadverwaltung durch e<strong>in</strong>e andere Variante ersetzen kann.<br />

Nachdem das <strong>in</strong>itiale Abbild erstellt wurde, kann es auf den Knoten geladen werden. Die Kontrollschicht<br />

ist nun für die Laufzeitunterstützung verantwortlich. Je nach Art der Unterstützungsanforderung<br />

müssen Module nach<strong>in</strong>stalliert, ersetzt oder geparkt werden.<br />

5.3 Kontroll- und Verwaltungsschicht für e<strong>in</strong>e Java-Laufzeitumgebung<br />

Als Anwendungsbeispiel sollen nun die Möglichkeiten e<strong>in</strong>er Kontrollschicht anhand e<strong>in</strong>er Java-<br />

Laufzeitumgebung für e<strong>in</strong>gebettete Systeme betrachtet werden.<br />

5.3.1 Motivation<br />

Typische Netze aus e<strong>in</strong>gebetteten Knoten bestehen meist aus unterschiedlichen Knoten. Um die Softwareentwicklung<br />

zu vere<strong>in</strong>heitlichen, möchte man teilweise die Heterogenität der Knoten abstrahieren.<br />

E<strong>in</strong>e virtuelle Masch<strong>in</strong>e kann hier e<strong>in</strong>e Abstraktionsschicht bilden und die verschiedenen Fähigkeiten<br />

der Knoten zu e<strong>in</strong>em bestimmten Grad vere<strong>in</strong>heitlicht darstellen. E<strong>in</strong> Programm wird dann für<br />

die virtuelle Masch<strong>in</strong>e entwickelt. E<strong>in</strong>e Anpassungsschicht, die nur aus e<strong>in</strong>em Compiler bestehen<br />

kann, meist jedoch e<strong>in</strong> Laufzeitsystem be<strong>in</strong>haltet, sorgt für die Ausführung des Programms und leistet<br />

Laufzeitunterstützung. Je umfangreicher e<strong>in</strong>e virtuelle Masch<strong>in</strong>e ist, das heißt je mehr Dienste sie<br />

anbietet, desto allgeme<strong>in</strong>er, komfortabler und abstrakter kann die Umgebung se<strong>in</strong>, für die e<strong>in</strong> Programm<br />

entwickelt wird. Allerd<strong>in</strong>gs nimmt dann auch das Laufzeitsystem mehr Platz <strong>in</strong> Anspruch. Hier soll e<strong>in</strong><br />

Verwalter e<strong>in</strong>greifen und kle<strong>in</strong>e Knoten bei der Ausführung e<strong>in</strong>es großen Laufzeitsystems unterstützen.<br />

5.3.2 Java-Laufzeitumgebungen für e<strong>in</strong>gebettete Systeme<br />

E<strong>in</strong> bekanntes Beispiel e<strong>in</strong>er virtuellen Masch<strong>in</strong>e stellt die Java-Masch<strong>in</strong>e (Java Virtual Mach<strong>in</strong>e, JVM)<br />

dar. Sie ist für Bürocomputer entwickelt worden und durch die Vielzahl von Diensten für kle<strong>in</strong>e Knoten<br />

auf den ersten Blick ungeeignet. Betrachtet man jedoch verschiedene Java-Anwendungen, so stellt man<br />

fest, dass nicht jede Anwendung den vollen Umfang an Diensten benötigt. Besonders im Bereich der<br />

e<strong>in</strong>gebetteten Systeme werden die Anwendungen meist im H<strong>in</strong>blick auf die begrenzten Ressourcen<br />

entwickelt, sodass ressourcen<strong>in</strong>tensive Dienste nicht e<strong>in</strong>gesetzt werden. Dieser Umstand ermöglicht<br />

es, e<strong>in</strong>e Java-Umgebung für kle<strong>in</strong>e Systeme anzubieten. Im Folgenden sollen zwei Techniken dazu<br />

vorgestellt werden.<br />

5.3.2.1 Allgeme<strong>in</strong>e Reduktion des Funktionsumfangs<br />

E<strong>in</strong>e Möglichkeit ist, e<strong>in</strong>e e<strong>in</strong>geschränkte Version der JVM anzubieten, die nicht alle Dienste und<br />

Funktionen e<strong>in</strong>er normalen Java-Umgebung bereitstellt. Dabei s<strong>in</strong>d zwei Arten von E<strong>in</strong>schränkungen<br />

möglich. Zum e<strong>in</strong>en kann die Klassenbibliothek e<strong>in</strong>geschränkt werden, zum anderen kann die virtuelle<br />

Masch<strong>in</strong>e selbst e<strong>in</strong>geschränkt se<strong>in</strong>.<br />

104

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!