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

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

5 Kontroll- und Verwaltungsschicht<br />

Abbildung 5.8: Abhängigkeiten der Speicherbere<strong>in</strong>igung<br />

werden. Es gibt verschiedene Verfahren zur automatischen Speicherbere<strong>in</strong>igung, mit spezifischen Vorund<br />

Nachteilen. Daher ist e<strong>in</strong> Wechsel zwischen diesen verschiedenen Verfahren wünschenswert.<br />

Im Folgenden soll e<strong>in</strong>e Charakterisierung der verschiedenen Ansätze vorgenommen werden, um<br />

die Vor- und Nachteile abschätzen zu können. Dabei werden nicht e<strong>in</strong>zelne Algorithmen vorgestellt,<br />

sondern Kriterien, um mögliche Verfahren e<strong>in</strong>zuteilen.<br />

direkt — <strong>in</strong>direkt E<strong>in</strong>e Unterscheidung lässt sich treffen nach der Art und Weise, wie man unbenutzte<br />

Objekte erkennt. Bei den sogenannten direkten Ansätzen kann man für jedes Objekt direkt feststellen,<br />

ob es noch benötigt wird. Das kann zum Beispiel dadurch realisiert se<strong>in</strong>, dass man zu jedem Objekt<br />

e<strong>in</strong>en Referenzzähler speichert, der die Anzahl der Verweise auf das Objekt enthält [Col60]. Vorteil<br />

hierbei ist, dass man sehr leicht erkennen kann, ob e<strong>in</strong> Objekt noch verwendet wird. Sobald der<br />

Referenzzähler auf Null ist, kann das Objekt gelöscht werden. Nachteil ist, dass der Referenzzähler<br />

immer aktuell zu halten ist. Je nach Vorgehen ist das mit relativ viel Aufwand verbunden.<br />

Wenn nicht direkt im Objekt vermerkt ist, ob es noch benötigt wird, dann muss man das <strong>in</strong>direkt<br />

feststellen. Dies kann zum Beispiel dadurch erfolgen, dass man e<strong>in</strong>en Erreichbarkeitsgraphen aufbaut.<br />

Das heißt, ausgehend von e<strong>in</strong>er <strong>in</strong>itialen Menge an Objekten, root set genannt, werden alle erreichbaren<br />

Objekte abgelaufen. Objekte, die man dabei nicht besucht, können gelöscht werden, da sie nicht<br />

erreichbar s<strong>in</strong>d. E<strong>in</strong>es der bekanntesten Beispiele dieser Speicherbere<strong>in</strong>igungsart ist der mark-andsweep<br />

Algorithmus, welcher bereits 1960 das erste Mal von John McCarthy im Rahmen von LISP<br />

beschrieben wurde [McC60]. Vorteil der <strong>in</strong>direkten Verfahren ist, dass zur normalen Ausführungszeit<br />

ke<strong>in</strong> zusätzlicher Aufwand entsteht. Dafür ist allerd<strong>in</strong>gs das Erstellen des Erreichbarkeitsgraphen relativ<br />

aufwendig.<br />

kopierend/verschiebend — nicht-verschiebend E<strong>in</strong>e andere Charakterisierung beurteilt die Verfahren<br />

nach der Art, wo die verwendeten Objekte nach der Speicherbere<strong>in</strong>igung angeordnet s<strong>in</strong>d. Hier<br />

besteht die Möglichkeit, dass die Objekte an derselben Position liegen wie vor der Speicherbere<strong>in</strong>igung<br />

oder dass sie an e<strong>in</strong>e andere Position kopiert wurden. Kopierende Speicherbere<strong>in</strong>igung bedeutet<br />

dabei eigentlich, dass alle benötigten Objekte von e<strong>in</strong>em Speicherbereich <strong>in</strong> e<strong>in</strong>en anderen kopiert<br />

werden [Che70, FY69]. Man kann auch noch solche Verfahren dazu zählen, welche die lebenden<br />

Objekte zusammenfassen [HW67]. Vorteil ist hauptsächlich, dass die Fragmentierung des freien Speichers<br />

vermieden wird. Nachteil kopierender oder verschiebender Verfahren ist, dass Referenzen auf<br />

verschobene Objekte angepasst werden müssen.<br />

<strong>in</strong>krementell — blockierend E<strong>in</strong>e weitere Unterscheidung kann nach der Fähigkeit zur nebenläufigen<br />

Ausführung der Speicherbere<strong>in</strong>igung vorgenommen werden. E<strong>in</strong>ige Verfahren können nur exklusiv<br />

ausgeführt werden. Das heißt, dass das System während der Speicherbere<strong>in</strong>igung angehalten wird.<br />

Diese Verfahren werden blockierend genannt.<br />

112

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!