| |
19
4
Garbage Collection in Ve rteilten Systemen
4.1
Besonderheiten bei der GC in Verteilten Systemen
Ein verteiltes System (VS) kann als System definiert werden, in dem Komponenten von
vernetzten Computern miteinander kommunizieren und ihre Aktivitäten koordinieren,
indem sie Nachrichten austauschen [Co01]. Trotz einer möglichen Heterogenität der
Komponenten kann ein Ziel in einem VS sein, die Zusammenarbeit der Rechner für
Benutzer so transparent zu gestalten, dass von einem virtuellen Uniprozessor gespro-
chen werden kann, obwohl die Komponenten über ein Netzwerk interagieren [Jo96].
Fragestellungen in Bezug auf verteiltes Speichermanagement sind häufig mit dem Ma-
nagement von verteilten Prozessen verbunden [Hu82 in Jo96]. Neben dem Teilen von
Ressourcen (z.B. Drucker oder Dateien) über ein Netzwerk, gewinnen auch Anwendun-
gen, die verteilt auf mehreren Rechnerknoten ablaufen, zunehmend an Bedeutung. So
lassen sich beispielsweise mit serverseitigen Komponentenmodellen, wie Enterprise
JavaBeans [EJB02], unternehmensweite Anwendungen erstellen, deren Komponenten
auf mehreren Servern verteilt sind.
Laut Jones und Lins können VS auf der (low- level) Netzwerkebene und der (high- level)
Ebene des Protokolls, das einen virtuellen gemeinsamen Speicher (virtual shared memo-
ry) erzeugt, untersucht werden [Jo96]. Auf Netzwerkebene können für Netzwerke unter-
schiedlicher Reichweite verschiedene Eigenschaften genannt werden, die für die Spei-
cherwaltung von Bedeutung sind. Während in einem Local Area Network (LAN) die
Kommunikation als verlässlich (reliable) gilt, die mit hoher Geschwindigkeit und nied-
rigen Kosten abläuft, wird in einem Wide Area Network (WAN) die Kommunikation,
die hohe Kosten verursacht und langsamer und schwerer vorhersagbar ist, meist als fe h-
lerbehafteter und unverlässlicher (z.B. häufigerer Verlust von Nachrichten und mehr
Duplikate) angesehen [Jo96]. Obwohl Jones und Lins Algorithmen erwähnen, die für
verteilte GC in einen WAN geeignet sind (z.B. [Ma93]), meinen sie, dass die meisten
existierenden Algorithmen dennoch für ein LAN konzipiert sind.
Als Modell für einen virtuellen gemeinsamen Speicher kann beispielsweise Lis Shared
Virtual Memory (SVM) Modell [Li86] oder Bals Shared Data-Object Modell (SDO)
[Ba92] betrachtet werden [Jo96]. Im low- level SVM-Modell wird der Adressraum in
Seiten (Pages) unterteilt, die unter den Prozessen aufgeteilt werden, wobei die Struktur
der zu speichernden Daten nicht beachtet wird. Das Protokoll beinhaltet bloß primitive
Operationen zum Laden, Speichern und Sperren der Seiten. Jeder Prozess bzw. Prozes-
sor kann jederzeit auf den gesamten Speicher des Adressraums zugreifen, wobei Prozes-
|  |
|
| |
|
|