Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Leni Genzer Geändert vor über 10 Jahren
1
Garbage Collection Maik Theisen Betreuer: Guido Tack
Proseminar „Programmiersysteme“ – WS 03/04 Prof. Dr. Gert Smolka Programming Systems Lab, Universität des Saarlandes
2
Gliederung Grundlagen Copying Garbage Collection
Generational Garbage Collection Ausblick
3
Was ist Garbage Collection?
Automatisierte Bereinigung des Heaps Lisp war die erste Sprache mit GC Heute in vielen Programmiersprachen eingesetzt Ziel: „tote“ Speicherzellen freigeben
4
Wozu Garbage Collection?
Entlastung des Programmierers Reduzierung von Fehlern, z.B. Speicherlecks Rechtzeitige Freigabe von Speicher
5
Lebende Objekte „root“ Stack Heap A „toter“ Knoten B C D E F
6
Verschiedene Formen von GC
Mark-Sweep Mark-Compact Copying Generational
7
Gliederung Grundlagen P Copying Garbage Collection
Generational Garbage Collection Ausblick
8
Entwicklung / Entstehung
Erster CGC entstand 1969, war allerdings rekursiv (Fenichel, Yochelson) Cheney entwickelte 1970 einen iterativen Algorithmus Grundidee: Unterteilung des Heaps in „Semi-Spaces“ und Kopieren der Daten von einem „Semi-Space“ zum anderen
9
Funktion (Cheney‘s Algorithmus)
B C D E Fromspace A‘ free scan Tospace
10
Funktion (Cheney‘s Algorithmus)
B C D E Fromspace A‘ free scan Tospace
11
Funktion (Cheney‘s Algorithmus)
B C D E Fromspace A‘ B‘ free scan Tospace
12
Funktion (Cheney‘s Algorithmus)
B C D E Fromspace A‘ B‘ free scan Tospace
13
Funktion (Cheney‘s Algorithmus)
B C D E Fromspace A‘ B‘ free scan Tospace
14
Funktion (Cheney‘s Algorithmus)
B C B‘ D E Fromspace A‘ B‘ C‘ free scan Tospace
15
Funktion (Cheney‘s Algorithmus)
B C B‘ D E Fromspace A‘ B‘ C‘ free scan Tospace
16
Funktion (Cheney‘s Algorithmus)
B C B‘ D E Fromspace A‘ B‘ C‘ free scan Tospace
17
Funktion (Cheney‘s Algorithmus)
B C B‘ D E Fromspace A‘ B‘ C‘ free scan Tospace
18
Funktion (Cheney‘s Algorithmus)
B C B‘ C‘ D E Fromspace A‘ B‘ C‘ free scan Tospace
19
Funktion (Cheney‘s Algorithmus)
B C B‘ C‘ D E Fromspace A‘ B‘ C‘ free scan Tospace
20
Funktion (Cheney‘s Algorithmus)
B C B‘ C‘ D E Fromspace A‘ B‘ C‘ D‘ free scan Tospace
21
Funktion (Cheney‘s Algorithmus)
B C B‘ C‘ D E Fromspace A‘ B‘ C‘ D‘ free scan Tospace
22
Funktion (Cheney‘s Algorithmus)
B C B‘ C‘ D E D‘ Fromspace A‘ B‘ C‘ D‘ free scan Tospace
23
Funktion (Cheney‘s Algorithmus)
B C B‘ C‘ D E D‘ Fromspace A‘ B‘ C‘ D‘ free scan Tospace
24
Funktion (Cheney‘s Algorithmus)
B C B‘ C‘ D E D‘ Fromspace A‘ B‘ C‘ D‘ E‘ free scan Tospace
25
Funktion (Cheney‘s Algorithmus)
B C B‘ C‘ D E D‘ Fromspace A‘ B‘ C‘ D‘ E‘ free scan Tospace
26
Funktion (Cheney‘s Algorithmus)
B C B‘ C‘ D E D‘ Fromspace A‘ B‘ C‘ D‘ E‘ free scan Tospace
27
Funktion (Cheney‘s Algorithmus)
B C B‘ C‘ D E D‘ E‘ Fromspace A‘ B‘ C‘ D‘ E‘ free scan Tospace
28
Funktion (Cheney‘s Algorithmus)
B C B‘ C‘ D E D‘ E‘ Fromspace A‘ B‘ C‘ D‘ E‘ free scan Tospace
29
Funktion (Cheney‘s Algorithmus)
B C B‘ C‘ D E D‘ E‘ Fromspace A‘ B‘ C‘ D‘ E‘ free scan Tospace
30
Funktion (Cheney‘s Algorithmus)
B C B‘ C‘ D E D‘ E‘ Fromspace A‘ B‘ C‘ D‘ E‘ free scan Tospace
31
Funktion (Cheney‘s Algorithmus)
B C B‘ C‘ D E D‘ E‘ Fromspace A‘ B‘ C‘ D‘ E‘ free scan Tospace
32
Funktion (Cheney‘s Algorithmus)
B C B‘ C‘ D E D‘ E‘ Fromspace A‘ B‘ C‘ D‘ E‘ free scan Tospace
33
Funktion (Cheney‘s Algorithmus)
B C B‘ C‘ D E D‘ E‘ Fromspace A‘ B‘ C‘ D‘ E‘ free scan Tospace
34
Funktion (Cheney‘s Algorithmus)
B C B‘ C‘ D E D‘ E‘ Fromspace A‘ B‘ C‘ D‘ E‘ free scan Tospace
35
Effizienz Cheney‘s Algorithmus läuft in der Komplexität O(n), wobei n die Anzahl der lebenden Objekte ist Abhängig von der Größe des Heaps Abhängig von der Größe der Objekte
36
Große Objekte Werden oft kopiert, benötigen spezielle Behandlung
Bereiche im Heap für diese Objekte reservieren und GC dort mit anderer Technik durchführen, z.B. Mark-Sweep
37
Einsatzgebiete Systeme, bei denen die Speicherverwaltung von Allokationen dominiert wird Systeme mit kleinen, kurzlebigen Objekten Systeme, bei denen Verzögerungen bzw. Pausen unkritisch sind
38
Probleme Art der Durchmusterung des Heaps Lokalität geht verloren
Objekte mit langer Lebensdauer
39
Gliederung Grundlagen P Copying Garbage Collection P
Generational Garbage Collection Ausblick
40
Entwicklung / Entstehung
Basiert auf der „Weak Generational Hypothesis“ „Most Objects die young.“ Erstes Paper von Lieberman und Hewitt 1983 Basiert auf Heuristiken
41
Funktion inter-generational Pointer jüngste Generation
ältere Generation älteste Generation
42
Inter-generational Pointers
Write Barrier (Schreibzugriff teuer) Entry tables (Lesezugriff teuer)
43
Inter-generational Pointers
Write Barrier (Schreibzugriff teuer) Entry tables (Lesezugriff teuer)
44
Langlebige Objekte Durch Heuristiken erraten, welche Objekte lange leben (z.B. Programmcode in Alice) Diese Objekte bereits zu Beginn in ältester Generation speichern
45
Einsatzgebiete Als Weiterentwicklung von Copying GC gleiche Einsatzgebiete Eingesetzt in z.B. Java, Alice Ungeeignet für kleinere Systeme
46
Probleme Gleiche Probleme wie Copying GC, aber Problem mit Lebensdauer gelöst
47
Ausblick Incremental GC Region-based memory management
Statische Analyse der Lebensdauer
48
Gliederung Grundlagen P Copying Garbage Collection P
Generational Garbage Collection P Ausblick P
49
Literatur Gargage Collection, Richard Jones & Rafael Lins
Concepts in Programming Languages, John Mitchell A Nonrecursive List Compacting Algorithm, C.J. Cheney Simple Generational Garbage Collection and Fast Allocation, Andrew W. Appel Generation Scavenging, David Ungar
50
Scheduling Ziel: Reduzierung der Pausezeiten
GC durchführen, wenn User nicht gestört wird, z.B. beim Warten auf I/O Ungeeignet für Echtzeitsysteme Key Objects (z.B. Wurzel von Bäumen)
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.