Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Garbage Collection Maik Theisen Betreuer: Guido Tack

Ähnliche Präsentationen


Präsentation zum Thema: "Garbage Collection Maik Theisen Betreuer: Guido Tack"—  Präsentation transkript:

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)


Herunterladen ppt "Garbage Collection Maik Theisen Betreuer: Guido Tack"

Ähnliche Präsentationen


Google-Anzeigen