Der Train-Algorithmus Thomas Wuerthinger. Grundidee.

Post on 06-Apr-2016

225 views 2 download

Transcript of Der Train-Algorithmus Thomas Wuerthinger. Grundidee.

Der Train-Algorithmus

Thomas Wuerthinger

Grundidee

Grundidee

• Lange Programmunterbrechung -> den Speicher aufspalten

Speicher aufteilen

Speicher aufteilen

Speicher aufteilen

Sehr große Objekte

Zyklusproblem

Lösung

• Zyklen in gleiche Blöcke bringen

Lösung

Lösung

Der Bahnhof

Der BahnhofKeine externen Referenzen

Der Bahnhof

Der Bahnhof

Fehler

Addresse -> Car und Train

Addresse -> Car und Train

Popular Objects

• Performance-Overhead bei jedem lesendem Pointer-Zugriff

Popular Objects – Problem 1

• Nur mehr von B oder C Referenziertes wird nie freigegeben.

Popular Objects – Problem 2

Popular Objects – Problem 3• Mehr als ein Popular Object -> Car muss aufgespalten werden.

Distributed Train-Algorithmus

• Externe Referenzen müssen dem Objekt-Besitzer mitgeteilt werden

• Trains sind über mehrere Knoten verteilt• Token-Ring-System zur Freigabe von

Zügen• Zwei Durchläufe des Tokens notwendig• Beliebiger Train kann verarbeitet werden,

daher Unwanted Relative Problem.

Unwanted Relative

Conclusion

• Meist als Algorithmus für die ältere Generation verwendet. Beispiel: Java Hotspot VM

• Optimierungen wie bei Popular Objects verbessern die maximale Ausführungsdauer

Danke für die Aufmerksamkeit!