Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Garbage Collection Maik Theisen Betreuer: Guido Tack Proseminar Programmiersysteme – WS 03/04 Prof. Dr. Gert Smolka Programming Systems Lab, Universität.

Ähnliche Präsentationen


Präsentation zum Thema: "Garbage Collection Maik Theisen Betreuer: Guido Tack Proseminar Programmiersysteme – WS 03/04 Prof. Dr. Gert Smolka Programming Systems Lab, Universität."—  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 A CB FDE Stack Heap root toter Knoten

6 Verschiedene Formen von GC Mark-Sweep Mark-Compact Copying Generational

7 Gliederung Grundlagen 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 (Cheneys Algorithmus) A C B DE Fromspace scan free Tospace A

10 Funktion (Cheneys Algorithmus) A C B DE Fromspace scan free Tospace A

11 Funktion (Cheneys Algorithmus) A C B DE Fromspace scan free Tospace A A B

12 Funktion (Cheneys Algorithmus) A C B DE Fromspace scan free Tospace A A B

13 Funktion (Cheneys Algorithmus) A C B DE Fromspace scan free Tospace A A B

14 Funktion (Cheneys Algorithmus) A C B DE Fromspace scan free Tospace A A B BC

15 Funktion (Cheneys Algorithmus) A C B DE Fromspace scan free Tospace A A B BC

16 Funktion (Cheneys Algorithmus) A C B DE Fromspace scan free Tospace A A B BC

17 Funktion (Cheneys Algorithmus) A C B DE Fromspace scan free Tospace A A B BC

18 Funktion (Cheneys Algorithmus) A C B DE Fromspace scan free Tospace A A B B C C

19 Funktion (Cheneys Algorithmus) A C B DE Fromspace scan free Tospace A A B B C C

20 Funktion (Cheneys Algorithmus) A C B DE Fromspace scan free Tospace A A B B C CD

21 Funktion (Cheneys Algorithmus) A C B DE Fromspace scan free Tospace A A B B C CD

22 Funktion (Cheneys Algorithmus) A C B DE Fromspace scan free Tospace A A B B C C D D

23 Funktion (Cheneys Algorithmus) A C B DE Fromspace scan free Tospace A A B B C C D D

24 Funktion (Cheneys Algorithmus) A C B DE Fromspace scan free Tospace A A B B C C D DE

25 Funktion (Cheneys Algorithmus) A C B DE Fromspace scan free Tospace A A B B C C D DE

26 Funktion (Cheneys Algorithmus) A C B DE Fromspace scan free Tospace A A B B C C D DE

27 Funktion (Cheneys Algorithmus) A C B DE Fromspace scan free Tospace A A B B C C D D E E

28 Funktion (Cheneys Algorithmus) A C B DE Fromspace scan free Tospace A A B B C C D D E E

29 Funktion (Cheneys Algorithmus) A C B DE Fromspace scan free Tospace A A B B C C D D E E

30 Funktion (Cheneys Algorithmus) A C B DE Fromspace scan free Tospace A A B B C C D D E E

31 Funktion (Cheneys Algorithmus) A C B DE Fromspace scan free Tospace A A B B C C D D E E

32 Funktion (Cheneys Algorithmus) A C B DE Fromspace scan free Tospace A A B B C C D D E E

33 Funktion (Cheneys Algorithmus) A C B DE Fromspace scan free Tospace A A B B C C D D E E

34 Funktion (Cheneys Algorithmus) A C B DE Fromspace scan free Tospace A A B B C C D D E E

35 Effizienz Cheneys 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 Copying Garbage Collection 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 jüngste Generationältere Generationälteste Generation inter-generational Pointer

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 Copying Garbage Collection Generational Garbage Collection Ausblick

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 Proseminar Programmiersysteme – WS 03/04 Prof. Dr. Gert Smolka Programming Systems Lab, Universität."

Ähnliche Präsentationen


Google-Anzeigen