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

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

5.4 E<strong>in</strong>e JVM als Baukasten<br />

Die Koord<strong>in</strong>ierungsmechanismen stellen e<strong>in</strong>en Dienst der virtuellen Masch<strong>in</strong>e für die Anwendung<br />

dar. Sie werden daher nur durch die Anwendung beziehungsweise durch die Ausführungse<strong>in</strong>heit<br />

aktiviert. Der Aufruf erfolgt, sobald e<strong>in</strong> mit synchronized geschützter kritischer Abschnitt betreten<br />

oder verlassen wird.<br />

Vor dem Betreten e<strong>in</strong>es Monitors muss festgestellt werden, ob der Monitor gesperrt oder frei ist. Diese<br />

Information kann auf verschiedene Weise gespeichert werden. E<strong>in</strong>e Möglichkeit besteht dar<strong>in</strong>, es <strong>in</strong> dem<br />

Monitor-Objekt selbst zu vermerken. Dann ist der Zustand sofort an den Verwaltungs<strong>in</strong>formationen des<br />

Objekts ablesbar. Da jedoch jedes Java-Objekt potenziell als Monitor-Objekt genutzt werden kann, muss<br />

<strong>in</strong> jedem Objekt Platz für diese Information vorgesehen werden. Das kann zu e<strong>in</strong>er unverhältnismäßig<br />

starken Vergrößerung aller Objekte führen. Alternativ kann e<strong>in</strong>e zusätzliche Liste geführt werden,<br />

welche die Objekte enthält, die aktuell als Monitor genutzt werden. Dadurch wird nicht <strong>in</strong> allen<br />

Objekten Platz benötigt, jedoch ist der Aufwand größer, die entsprechende Variable zu e<strong>in</strong>em Objekt<br />

zu f<strong>in</strong>den.<br />

Welche Art s<strong>in</strong>nvoller ist, hängt davon ab, wie viele und wie häufig Objekte als Monitor genutzt<br />

werden. Diese Informationen können nur zur Laufzeit ermittelt werden. Mit e<strong>in</strong>em Verwalter kann man<br />

dann dynamisch die Koord<strong>in</strong>ierungsmechanismen und das Objektlayout austauschen.<br />

Das Auslagern der Koord<strong>in</strong>ierungsmechanismen ist zum Teil möglich. So können zum Beispiel<br />

die Warteschlangen an den Monitoren extern realisiert werden. Da das Nachfragen, ob der kritische<br />

Abschnitt betreten werden darf, dann jedoch relativ viel Zeit <strong>in</strong> Anspruch nimmt, ist die Auslagerung<br />

nur selten s<strong>in</strong>nvoll.<br />

5.4.6 Ausnahmeverarbeitung<br />

Die Ausnahmeverarbeitung ist der Teil der JVM, der die Behandlung e<strong>in</strong>er Ausnahme (Exception)<br />

anstößt, sobald e<strong>in</strong>e Ausnahme aufgetreten ist beziehungsweise geworfen wurde. Die Ausnahmeverarbeitung<br />

wird durch e<strong>in</strong>e throw-Anweisung aktiviert. Ihre erste Aufgabe ist die Bestimmung des<br />

Typs des Ausnahmeobjekts, um anschließend zu prüfen, ob für diesen Typ im aktuell ausgeführten<br />

Code e<strong>in</strong>e entsprechende Ausnahmebehandlung registriert ist. Dafür wird die aktuelle Codeposition<br />

mithilfe der Ausführungse<strong>in</strong>heit ermittelt. Anschließend können der Code der Ausnahmebehandlungen<br />

und die Wirksamkeit anhand der Ausnahmebehandlungstabelle bestimmt werden. Wird ke<strong>in</strong>e passende<br />

Ausnahmebehandlung gefunden, so wird die aufrufende Methode mithilfe der Ausführungse<strong>in</strong>heit<br />

bestimmt und dort nach e<strong>in</strong>er geeigneten Ausnahmebehandlung gesucht.<br />

Abbildung 5.13: Abhängigkeiten der Ausnahmeverarbeitung<br />

Die Ausnahmeverarbeitung wird von allen Diensten benötigt, die e<strong>in</strong>en Fehlerzustand an die Anwendung<br />

melden möchte. Hiervon macht zum Beispiel die Speicherverwaltung gebrauch, wenn nicht<br />

mehr genügend Speicher zur Verfügung steht, um e<strong>in</strong>e Anforderung zu erfüllen. Am meisten wird sie<br />

jedoch von der Ausführungse<strong>in</strong>heit benötigt. Zum e<strong>in</strong>en, um entsprechende explizite Anweisungen <strong>in</strong><br />

117

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!