next up previous contents
Next: Variable Monitordarstellung Up: Entwurfsdimensionen Previous: Allokationszeitpunkt   Inhalt

Zuordnungsmechanismus

Da eine Einbettung in das Objekt aus Platzgründen entfällt, müssen Monitorstrukturen ihren Objekten zugeordnet werden. Dies kann entweder durch direkte Referenzen aus dem Objektkopf oder durch indirekte Zuordnung mittels einer Tabelle geschehen.

Hier wird Zeit- gegen Platzeffizienz abgewogen: eine direkte Referenz ermöglicht Zugriff auf den Monitor in konstanter und kurzer Zeit, während die Monitorreferenz als ein Wort pro Objekt zu Buche schlägt. Um den Platzbedarf zu mindern, kann die Monitorreferenz an Stelle eines anderen Wortes im Objektkopf abgelegt werden. Der überschriebene Wert -- typischerweise der Hashwert des Objektes -- wird dann in der Monitorstruktur abgelegt. Diese Technik wird header word displacement genannt und in der Sun Research VM [Sun Microsystems, 2000e] sowie der Hotspot Performance Engine [Sun Microsystems, 1999] eingesetzt. Beide Monitorimplementierungen werden in den Abschnitten 5.4.4 respektive 5.4.5 näher diskutiert.

Eine Tabellenstruktur hat keinen Platzbedarf für nicht genutzte Monitore, allerdings kann kein Zugriff in konstanter Zeit garantiert werden. Insbesondere muß die Tabelle selbst thread-sicher gemacht werden; Zugriffskonflikte auf dieser zentralen Struktur sind wahrscheinlich, weshalb die Laufzeitperformanz kritisch zu betrachten ist. Die Sun Classic VM [Sun Microsystems, 2000a] und Cacao [Krall and Probst, 1998] implementieren den Monitorzugriff auf diese Weise (die Tabelle und ihre Sperre heißen hier monitor cache und monitor cache lock).


next up previous contents
Next: Variable Monitordarstellung Up: Entwurfsdimensionen Previous: Allokationszeitpunkt   Inhalt

2001-02-28