| |
23
Tracing-Collectors in jedem Rechnerknoten. Zweitens werden mehrere Knoten zur Ko-
operation jeweils in einer Gruppe für eine Gruppen-GC zusammengefasst, für die ein
auf dem Reference Counting basierender Collector eingesetzt wird. GC-Zyklen mehre-
rer Gruppen dürfen sich überlappen und gleichze itig aktiv sein.
Eine Referenz zu einer entfernten Speicherzelle (Remote-Referenz) eines anderen Kno-
tens wird durch ein Exit-Element im gleichen Knoten und ein Entry-Element in dem
entfernten Knoten dargestellt. Abb. 6 zeigt, wie die Remote- Referenz von Knoten P auf
die Zelle g des Knotens Q mit Hilfe eines Exit-Elements und Entry- Elements dargestellt
werden kann. Dabei hat jedes Entry-Element einen Referenzzähler, der mitzählt, von
wie vielen Exit-Elementen das Entry-Element referenziert wird.
Abb. 6: Remote-Referenz
Im Folgenden werden die verschiedenen Schritte erklärt, die bei der verteilten GC von
Lang et al. durchlaufen werden. Zu Beginn erfolgt eine Gruppenverhandlung (Group
Negotiation). Hierbei kann ein Knoten, der bei einer Gruppen-GC teilnehmen möchte,
eine neue Gruppe erstellen. Beispielsweise kann eine kleine Gruppe mit nur sehr nahen
Knoten oder auch eine große Gruppe mit allen dem Initiator bekannten Knoten gebildet
werden. Da Gruppen sich auch überlappen dürfen und eine hierarchische Struktur haben
können, kann ein Knoten auch Mitglied in mehreren Gruppen sein. Kooperiert ein Kno-
ten zur GC nicht mit dem Rest der Gruppe, so wird er aus der Gruppe ausgeschlossen
und der GC-Vorgang ohne ihn fortgesetzt.
Beim nächsten Schritt, dem initialen Markierungsvorgang, werden alle Entry- Elemente
einer Gruppe entweder als hart oder weich markiert -
hart, wenn auf sie von außerhalb
der Gruppe referenziert wird oder sie von dem Root Set eines Knotens direkt erreichbar
sind; weich, wenn sie nur von Knoten innerhalb der Gruppe zu erreichen sind [Jo96].
Dazu wird von den Referenzzählern jedes Entry-Elements eine Kopie für die Gruppe
erstellt. Jeder Knoten der Gruppe schickt für jedes seiner Exit-Elemente eine Dekre-
ment-Nachricht an das zugehörige Entry-Element, falls das referenzierte Element in
g
Knoten P
Knoten Q
Exit -Element
Entry-Element
Quelle: [La92]
Remote-Kante
|  |
|
| |
|
|