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 Kontroll- und Verwaltungsschicht<br />

5.4.3.1 Objektlayoutverwaltung<br />

Die Objektlayoutverwaltung legt die Struktur e<strong>in</strong>es Objekts im Speicher fest. Sie führt e<strong>in</strong>e Abbildung<br />

der abstrakten Objektstrukturbeschreibung aus den Klassendaten auf e<strong>in</strong>en konkreten Speicherbereich<br />

durch. Der Speicherbereich e<strong>in</strong>es Objekts enthält zum e<strong>in</strong>en die Nutzdaten, also die Felder e<strong>in</strong>es Objekts,<br />

zum anderen Verwaltungs<strong>in</strong>formationen, welche es unter anderem ermöglichen, den dynamischen Typ<br />

des Objekts festzustellen. Die Anzahl und Größe der Felder wird durch die Objektstrukturbeschreibung,<br />

e<strong>in</strong>em Teil der Klassendaten, bereitgestellt. Um den Objekttyp e<strong>in</strong>deutig zu beschreiben, kann zum<br />

Beispiel e<strong>in</strong> Index <strong>in</strong> die Typhierarchie der Klassendaten verwendet werden.<br />

Abbildung 5.6: Abhängigkeiten der Objektlayoutverwaltung<br />

Das Objektlayout wird von allen Bauste<strong>in</strong>en verwendet, welche die Speicherstelle e<strong>in</strong>es Objektfeldes<br />

benötigen. Hauptsächlich ist das die Ausführungse<strong>in</strong>heit oder der Compiler, da hier die Feldzugriffe,<br />

welche im Anwendungscode spezifiziert s<strong>in</strong>d, umgesetzt werden und dazu die tatsächliche Speicherstelle<br />

ermittelt werden muss. Auch die Speicherbere<strong>in</strong>igung greift auf die Felder e<strong>in</strong>es Objekts zu, um<br />

Referenzen auf andere Objekte zu lesen.<br />

Neben dem Zugriff auf die Objektfelder wird die Objektverwaltung auch von Bauste<strong>in</strong>en benötigt,<br />

welche auf die Verwaltungs<strong>in</strong>formationen e<strong>in</strong>es Objekts zugreifen möchten. Hier ist vor allem die<br />

Typprüfung zu nennen, welche den dynamischen Typ e<strong>in</strong>es Objekts auslesen muss. Aber auch die<br />

Koord<strong>in</strong>ationsmechanismen können den aktuellen Zustand e<strong>in</strong>er Sperre <strong>in</strong> den Verwaltungsstrukturen<br />

e<strong>in</strong>es Objekts abgelegt haben (siehe Abschnitt 5.4.5).<br />

Durch das Austauschen der Objektlayoutverwaltung kann das Objektlayout den tatsächlich benötigten<br />

Anforderungen angepasst werden. So ist es von den e<strong>in</strong>gesetzten Koord<strong>in</strong>ierungsmechanismen<br />

abhängig, ob Platz für die Markierung gesperrter Objekte vorhanden se<strong>in</strong> muss. Die Kennzeichnung<br />

des dynamischen Typs kann je nach Typhierarchie unterschiedlich kompakt dargestellt werden. S<strong>in</strong>d<br />

im System nur wenige Typen bekannt, so können diese Typen mit weniger Platz identifiziert werden<br />

als <strong>in</strong> e<strong>in</strong>em System mit vielen Typen. Werden neue Typen h<strong>in</strong>zugefügt, so muss das Objektlayout<br />

jedoch angepasst werden. Verändert man das Objektlayout durch den dynamischen Austausch e<strong>in</strong>er<br />

optimierten Objektlayoutverwaltung zur Laufzeit, so müssen gegebenenfalls alle aktiven Objekte <strong>in</strong><br />

das neue Layout umgewandelt werden.<br />

Beim Austausch der Objektlayoutverwaltung ist zu beachten, dass sie oft nicht als expliziter Dienst<br />

realisiert ist. Stattdessen ist sie implizit gegeben und <strong>in</strong> die Dienste <strong>in</strong>tegriert, welche die Speicherstelle<br />

e<strong>in</strong>es Objektfeldes benötigen. Der B<strong>in</strong>der kann so beim Auflösen von Objektfeldern direkt den Abstand<br />

des Feldes vom Beg<strong>in</strong>n des Objekts im Speicher vermerken. E<strong>in</strong> Interpreter hat somit direkt die nötige<br />

Information um den Ort des Feldes zu bestimmen. Wird e<strong>in</strong> Compiler verwendet, so kann das Layout<br />

des Objekts <strong>in</strong> den erzeugten Code e<strong>in</strong>fließen und Feldzugriffe werden direkt <strong>in</strong> Zugriffe auf die<br />

entsprechende Speicherstelle umgesetzt. Zugriffe auf die Verwaltungsdaten e<strong>in</strong>es Objekts können<br />

110

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!