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

Bytecode verändert. Die Software, die diesen Vorgang durchführt, wird Interpreter genannt und stellt<br />

bei diesem Ansatz die Ausführungse<strong>in</strong>heit dar.<br />

Der größte Nachteil dieses Ansatzes ist, dass die Interpretation relativ viel Zeit und Energie <strong>in</strong><br />

Anspruch nimmt. Um die Ausführungsgeschw<strong>in</strong>digkeit zu steigern, ist man dazu übergegangen, den<br />

Java-Bytecode <strong>in</strong> Masch<strong>in</strong>encode zu übersetzen. Dabei entsteht architekturabhängiger Code, der direkt<br />

von der CPU auf der Zielplattform ausgeführt werden kann 4 . Zum Kompilieren wird allerd<strong>in</strong>gs e<strong>in</strong><br />

spezieller Compiler für die Zielarchitektur benötigt; die Portierung e<strong>in</strong>es Interpreters auf e<strong>in</strong>e neue<br />

Plattform ist allerd<strong>in</strong>gs oft weniger aufwendig als das Erstellen e<strong>in</strong>es Compilers.<br />

Da die kompilierte Anwendung direkt von der CPU der Zielplattform ausgeführt werden kann, wird<br />

ke<strong>in</strong> Softwarebauste<strong>in</strong> benötigt, der die Ausführung steuert. Alle benötigten Anweisungen werden im<br />

Rahmen des Übersetzungsvorganges vom Compiler <strong>in</strong> den Code e<strong>in</strong>gearbeitet.<br />

Abbildung 5.4: Abhängigkeiten der Ausführungse<strong>in</strong>heit<br />

Bei Verwendung e<strong>in</strong>es Interpreters können Ressourcen e<strong>in</strong>gespart werden, <strong>in</strong>dem e<strong>in</strong> anwendungsspezifischer<br />

Interpreter e<strong>in</strong>gesetzt wird, der nur den Teil des Java-Masch<strong>in</strong>en-Befehlssatzes unterstützt,<br />

der <strong>in</strong> der Anwendung verwendet wird. Werden von der Anwendung beispielsweise ke<strong>in</strong>e Fließkommaoperationen<br />

durchgeführt, so muss der Interpreter ke<strong>in</strong>e Befehle, die auf Fließkommazahlen arbeiten,<br />

unterstützen. Beim H<strong>in</strong>zufügen neuer Klassen zum System muss der Verwalter benachrichtigt werden,<br />

da der Interpreter dann möglicherweise ausgetauscht werden muss.<br />

Bei Verwendung e<strong>in</strong>es Compilers kann der Anwendungscode selbst als anwendungsspezifische<br />

Ausführungse<strong>in</strong>heit betrachtet werden. Der Compiler ist dann der Generator dieser Ausführungsumgebung.<br />

Optimierungen müssen durch ihn während der Codeerstellung durchgeführt werden. Bei der<br />

Beschreibung der anderen Bauste<strong>in</strong>e werden gelegentlich noch Optimierungen angedeutet, die e<strong>in</strong><br />

Compiler berücksichtigen kann.<br />

5.4.2 Speicherverwaltung<br />

Die Speicherverwaltung ist e<strong>in</strong>e der grundlegenden Ressourcenverwaltungen e<strong>in</strong>er virtuellen Masch<strong>in</strong>e.<br />

Die hauptsächliche Aufgabe liegt dabei <strong>in</strong> der Trennung zwischen freiem und belegtem Speicher.<br />

Die Speicherverwaltung bietet Schnittstellen, um beliebig große Blöcke von Speicher zu belegen und<br />

4 E<strong>in</strong> Masch<strong>in</strong>enprogramm wird etwa 10 bis 100-mal schneller ausgeführt als die Interpretation des vergleichbaren Programms<br />

<strong>in</strong> Java-Bytecode. Allerd<strong>in</strong>gs muss man auch die Zeit beachten, die der Übersetzungsvorgang benötigt, die, je<br />

nach Compiler die Ausführungszeit auch um das vierfache überschreiten kann [SSTP00].<br />

108

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!