next up previous contents
Next: Implementierung von Nebenläufigkeit Up: Implementierung der Speicherverwaltung Previous: Garbage Collection auf Multiprozessoren   Inhalt


Zusammenfassung

In diesem Kapitel wurde der aktuelle Stand der Technik zur Implementierung der Speicherverwaltung von Java-Maschinen dargestellt. Dabei wurden folgende Punkte herausgearbeitet:

Weiterhin wurde die enge Integration zwischen der Speicherverwaltung und den beiden anderen Hauptkomponenten dynamischer Compiler und Thread-System offenbar: Sowohl bei der Allokation als auch beim Protokollieren von Referenzen zwischen Generationen muß die Speicherverwaltung mit dem Compiler zusammenarbeiten. Bei der Allokation und bei der Einleitung der Garbage Collection ist eine Kooperation mit dem Thread-System vonnöten.

Abbildung 4.13: Die drei Hauptkomponenten aus Sicht der Speicherverwaltung
\begin{figure}
\center{\epsfig{file=thebigpicture/threefold-memory,width=12cm}}
\end{figure}

Zur Beschleunigung der auch bei generationaler Garbage Collection notwendigen Bereinigen des gesamten Speichers bieten sich inkrementelle Techniken an. Die Sun HotSpot Maschine [Sun Microsystems, 1999] implementiert als erste Java-VM den ,,Train``-Algorithmus - inzwischen folgen verschieden andere Implementierungen [Appeal, 2000,Intel, 2000], so daß sich auch hier ein Standard herauszubilden scheint.

Als weiterer Punkt wurde die Implementierung von Garbage Collection für Multiprozessorumgebungen untersucht. Klassische Algorithmen nutzen die Ressourcen hier nicht optimal aus, da sie sequentiell arbeiten und die Anwendung währenddessen ausschließen. Daher werden in diesem Bereich parallele Ansätze verfolgt, die die Arbeit des Garbage Collectors im Sinne einer Lastverteilung auf mehrere Prozessoren verteilt. Weiterhin existieren nebenläufige Verfahren, in denen der Garbage Collector nebenläufig mit der Anwendung ausgeführt wird. Diese Verfahren sind zwar schon lange bekannt, es existiern aber noch keine Implementierungen, die in ihrer Leistungsfähigkeit mit den gut erforschten Algorithmen der generationalen Garbage Collection vergleichbar wären.

Abschließend läßt sich festhalten, daß die meisten der in aktuellen Java-VMs verwendeten Techniken zur Implementierung der Speicherverwaltung gut erforscht sind. Lediglich im Bereich der Garbage Collection für Multiprozessorumgebungen sind in den nächsten 1-2 Jahren größere Fortschritte zu erwarten.


next up previous contents
Next: Implementierung von Nebenläufigkeit Up: Implementierung der Speicherverwaltung Previous: Garbage Collection auf Multiprozessoren   Inhalt

2001-02-28