Garbage Collection Maik Theisen Betreuer: Guido Tack

Slides:



Advertisements
Ähnliche Präsentationen
Hash-Tabellen und -Funktionen Hash-Tabellen in Java
Advertisements

DGC 1. 2 Motivation x new(x) delete(x) Speicher DGC 3 Inhalt Einführung GC / DGC Der ideale DGC Algorithmen Zusammenfassung.
Asymptotische Notation
Programmierung II (SS 2003)
Prof. Dr. S. Albers Prof.Dr.Th Ottmann
Spezialvorlesung Suchalgorithmen Thema: Einzelzustandsraumsuche Stefan Edelkamp.
Informatik 12 | DAES Compilerbau Wintersemester 2010 / 2011 Dr. Heiko Falk Technische Universität Dortmund Lehrstuhl Informatik 12 Entwurfsautomatisierung.
Fortgeschrittenenpraktika WS 2003/04 Database Research Group, Prof. Dr. Bernhard Seeger Department of Mathematics and Computer Science University of Marburg.
Kapitel 6: Klassifizierung von Sortiertechniken
3. Kapitel: Komplexität und Komplexitätsklassen
der Universität Oldenburg
Enno Rehling und Roger Butenuth, Uni-GH Paderborn: Arminius: Software für Linux-basierte SCI-Cluster Arminius: Software für Linux-basierte SCI-Cluster.
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Grammatiken beschreiben Sprachen L µ *, indem.
Baumstrukturen Richard Göbel.
Objektorientierte Programmierung
Strukturierte Programmierung
WS 03/04 Algorithmentheorie 03 - Randomisierung Prof. Dr. S. Albers Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (04 – Entwurfsverfahren) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 4 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Algorithmen und Datenstrukturen
6 Folgen (Teil II - Datenstrukturen und Algorithmen)
R-tree, R*-tree und R+-tree
High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.
Beispielrelation Buchbestellungen H = Menge der bedeutenden Ziele = {a, d} Schwelle T = 4 Stichprobe S = {a, b, a, a, a, a} mit s = |S| = 6 N = Anzahl.
UML Begleitdokumentation des Projekts
Rekursion Richard Göbel.
FH-Hof Algorithmen und Datenstrukturen - Einführung Richard Göbel.
Jedes Programm verwendet Datenstrukturen und Algorithmen um seine Aufgabe zu erfüllen Diese müssen offenbar zunächst sorgfältig dem speziellen Problem.
VM Memory Management Thomas Nguyen
Vorgehensmodelle: Schwergewichtige Modelle
2. Die rekursive Datenstruktur Baum 2
Mark & Sweep Seminar Softwareentwicklung: Garbage Collection Eva Schartner.
Entwicklung der Programmiersprachen
Java Garbage Collection Angelika Kusel, Überblick Was ist Garbage Collection? Vor- und Nachteile von GC GC-Algorithmen/Verfahren Java Garbage.
Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil I): Simulation und 3D Programmierung Prof.
Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Wintersemester 2011/2012 Dozent: Prof. Dr. phil. Manfred Thaller.
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Einführung in die Programmierung
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Dynamische Datentypen
Garbage Collection unter .NET
Stefan Loidl, , Reference Counting II Freigeben zyklischer Zellstrukturen.
Programmiersprachen Proseminar Grundlagen wissenschaftlichen Arbeitens
Algorithmen und Datenstrukturen Übungsmodul 8
Mark – Compact GC & Performancemessungen Bernhard Prügl,
Thomas Negeli | Reference Counting I Folie 1 / 20 Seminar Garbage Collection | WS2005 Reference Counting I Negeli Thomas.
Die Idee hinter Copying Garbage Collection (1) Aufteilung des Heaps in zwei Teile: To-Space und From-Space Nutzung eines Teiles durch das Programm Ist.
Gruppe: 31 Grundlagen wissenschaftlichen Arbeitens Algorithmen und Datenstrukturen Iris Studeny.
Programmieren ... in C++ Prof. Dr.-Ing. Franz-Josef Behr, HfT Stuttgart Programmeiren I.
JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.
Software Engineering Grundlagen
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
Algorithmen und Datenstrukturen 1 SS 2002
Der Train-Algorithmus
Distributed Database Systems Parallele Datenbanksysteme von Stefan Schneider.
C Tutorium – Memory Management – Knut Stolze. 2 Agenda Einführung in die Speicherverwaltung Stack vs. Heap Malloc Free Sizeof Tipps/Hinweise.
5 Memory Leaks, die auch in Ihrer.NET Anwendung sein könnten André Krämer Softwareentwickler, Trainer, Berater.
Spatial Partition Game Programming Patterns / Optimization Patterns AM3: Softwaretechnologie II (Teil 2): Simulation und 3D Programmierung Dozent: Prof.
Game Loop & Update Method Robert Nystrom – Game Programming Patterns Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung SS.
Programmiersprachen II Fortsetzung Datenstrukturen Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Vorbesprechung Klausur Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Universität der Bundeswehr München 1 Seminar – DBMS für spezielle Anwendungen Seminar DBMS für spezielle Anwendungen Versionen und Varianten.
© 2016 TravelTainment Einführung in die Garbage Collection Seminarvortrag Lars Frauenrath 1.
Dr. Wolfram Amme, Automatische Speicherverwaltung, Informatik II, FSU Jena, SS Automatische Speicherverwaltung.
Heapsort-Algorithmus
 Präsentation transkript:

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

Gliederung Grundlagen Copying Garbage Collection Generational Garbage Collection Ausblick

Was ist Garbage Collection? Automatisierte Bereinigung des Heaps Lisp war die erste Sprache mit GC Heute in vielen Programmiersprachen eingesetzt Ziel: „tote“ Speicherzellen freigeben

Wozu Garbage Collection? Entlastung des Programmierers Reduzierung von Fehlern, z.B. Speicherlecks Rechtzeitige Freigabe von Speicher

Lebende Objekte „root“ Stack Heap A „toter“ Knoten B C D E F

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

Gliederung Grundlagen P Copying Garbage Collection Generational Garbage Collection Ausblick

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

Funktion (Cheney‘s Algorithmus) B C D E Fromspace A‘ free scan Tospace

Funktion (Cheney‘s Algorithmus) B C D E Fromspace A‘ free scan Tospace

Funktion (Cheney‘s Algorithmus) B C D E Fromspace A‘ B‘ free scan Tospace

Funktion (Cheney‘s Algorithmus) B C D E Fromspace A‘ B‘ free scan Tospace

Funktion (Cheney‘s Algorithmus) B C D E Fromspace A‘ B‘ free scan Tospace

Funktion (Cheney‘s Algorithmus) B C B‘ D E Fromspace A‘ B‘ C‘ free scan Tospace

Funktion (Cheney‘s Algorithmus) B C B‘ D E Fromspace A‘ B‘ C‘ free scan Tospace

Funktion (Cheney‘s Algorithmus) B C B‘ D E Fromspace A‘ B‘ C‘ free scan Tospace

Funktion (Cheney‘s Algorithmus) B C B‘ D E Fromspace A‘ B‘ C‘ free scan Tospace

Funktion (Cheney‘s Algorithmus) B C B‘ C‘ D E Fromspace A‘ B‘ C‘ free scan Tospace

Funktion (Cheney‘s Algorithmus) B C B‘ C‘ D E Fromspace A‘ B‘ C‘ free scan Tospace

Funktion (Cheney‘s Algorithmus) B C B‘ C‘ D E Fromspace A‘ B‘ C‘ D‘ free scan Tospace

Funktion (Cheney‘s Algorithmus) B C B‘ C‘ D E Fromspace A‘ B‘ C‘ D‘ free scan Tospace

Funktion (Cheney‘s Algorithmus) B C B‘ C‘ D E D‘ Fromspace A‘ B‘ C‘ D‘ free scan Tospace

Funktion (Cheney‘s Algorithmus) B C B‘ C‘ D E D‘ Fromspace A‘ B‘ C‘ D‘ free scan Tospace

Funktion (Cheney‘s Algorithmus) B C B‘ C‘ D E D‘ Fromspace A‘ B‘ C‘ D‘ E‘ free scan Tospace

Funktion (Cheney‘s Algorithmus) B C B‘ C‘ D E D‘ Fromspace A‘ B‘ C‘ D‘ E‘ free scan Tospace

Funktion (Cheney‘s Algorithmus) B C B‘ C‘ D E D‘ Fromspace A‘ B‘ C‘ D‘ E‘ free scan Tospace

Funktion (Cheney‘s Algorithmus) B C B‘ C‘ D E D‘ E‘ Fromspace A‘ B‘ C‘ D‘ E‘ free scan Tospace

Funktion (Cheney‘s Algorithmus) B C B‘ C‘ D E D‘ E‘ Fromspace A‘ B‘ C‘ D‘ E‘ free scan Tospace

Funktion (Cheney‘s Algorithmus) B C B‘ C‘ D E D‘ E‘ Fromspace A‘ B‘ C‘ D‘ E‘ free scan Tospace

Funktion (Cheney‘s Algorithmus) B C B‘ C‘ D E D‘ E‘ Fromspace A‘ B‘ C‘ D‘ E‘ free scan Tospace

Funktion (Cheney‘s Algorithmus) B C B‘ C‘ D E D‘ E‘ Fromspace A‘ B‘ C‘ D‘ E‘ free scan Tospace

Funktion (Cheney‘s Algorithmus) B C B‘ C‘ D E D‘ E‘ Fromspace A‘ B‘ C‘ D‘ E‘ free scan Tospace

Funktion (Cheney‘s Algorithmus) B C B‘ C‘ D E D‘ E‘ Fromspace A‘ B‘ C‘ D‘ E‘ free scan Tospace

Funktion (Cheney‘s Algorithmus) B C B‘ C‘ D E D‘ E‘ Fromspace A‘ B‘ C‘ D‘ E‘ free scan Tospace

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

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

Einsatzgebiete Systeme, bei denen die Speicherverwaltung von Allokationen dominiert wird Systeme mit kleinen, kurzlebigen Objekten Systeme, bei denen Verzögerungen bzw. Pausen unkritisch sind

Probleme Art der Durchmusterung des Heaps Lokalität geht verloren Objekte mit langer Lebensdauer

Gliederung Grundlagen P Copying Garbage Collection P Generational Garbage Collection Ausblick

Entwicklung / Entstehung Basiert auf der „Weak Generational Hypothesis“ „Most Objects die young.“ Erstes Paper von Lieberman und Hewitt 1983 Basiert auf Heuristiken

Funktion inter-generational Pointer jüngste Generation ältere Generation älteste Generation

Inter-generational Pointers Write Barrier (Schreibzugriff teuer) Entry tables (Lesezugriff teuer)

Inter-generational Pointers Write Barrier (Schreibzugriff teuer) Entry tables (Lesezugriff teuer)

Langlebige Objekte Durch Heuristiken erraten, welche Objekte lange leben (z.B. Programmcode in Alice) Diese Objekte bereits zu Beginn in ältester Generation speichern

Einsatzgebiete Als Weiterentwicklung von Copying GC gleiche Einsatzgebiete Eingesetzt in z.B. Java, Alice Ungeeignet für kleinere Systeme

Probleme Gleiche Probleme wie Copying GC, aber Problem mit Lebensdauer gelöst

Ausblick Incremental GC Region-based memory management Statische Analyse der Lebensdauer

Gliederung Grundlagen P Copying Garbage Collection P Generational Garbage Collection P Ausblick P

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

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)