(Mostly) Concurrent Garbage Collection Seminar aus Softwareentwicklung: Garbage Collection Günther Gsenger.

Slides:



Advertisements
Ähnliche Präsentationen
Dynamische WEB-Applikationen
Advertisements

Collision Detection in Java3D Hristo Matev WS 02/03.
Routing – Routing Protokolle
DGC 1. 2 Motivation x new(x) delete(x) Speicher DGC 3 Inhalt Einführung GC / DGC Der ideale DGC Algorithmen Zusammenfassung.
4.5 Virtueller Speicher Problemsituation: Programme und Daten sind zu groß für den verfügbaren Arbeitsspeicher Frühere Lösung Aufspaltung der Programme.
Kapitel 9: Graphdurchlauf
Intelligente Dateisysteme Einführende Bemerkungen Manfred Thaller, Universität zu Köln Köln 17. Oktober 2013.
Objektrelationales Mapping mit JPA Entity Mapping Jonas Bandi Simon Martinelli.
Garbage Collection Maik Theisen Betreuer: Guido Tack
I/O Metaphern Präliminarien Manfred Thaller, Universität zu Köln Köln 21. Oktober 2008.
Proactivity for nomadic devices
1 Linux Paging, Caching und Swapping. 1 Vortragsstruktur Paging – Das Virtuelle Speichermodell –Die Page Table im Detail –Page Allocation und Page Deallocation.
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Algorithmen und Komplexität Teil 1: Grundlegende.
DVG Verkettete Listen Verkettete Listen. DVG Verkettete Listen 2 Primitive Datentypen Vorteile: –werden direkt vom Prozessor unterstützt.
VM Memory Management Thomas Nguyen
Thin Client vs. Zero Client Key Account Government 04 / 2012 Tim Riedel Welche Vorteile bieten Thin Clients gegenüber Zero Clients?
Web-Quest Stuttgart Anja Vasiljevič, Iris Pušnik Maj, 2011.
Die Denkweise der Kinder, das Lernen und Lehren.
Medien zwischen Technologie und Gesellschaft Dozent: Herr Prof. Dr. Manfred Thaller SS 13 Referent: Christian Braun.
AINF - 1. Jahrgang Hardware flash-Speicher Gerhard Rosenberger
Interaktive Karten zur Visualisierung statistischer Daten mit Descartes Vortrag von Annette Eicker GIS - Seminar WS 2000/01.
Speichermedien.
Zeit bzw. FREQUENZMESSUNG
Einleitung.
Passive Angriffe ... nicht-invasiv.
Kurt Mehlhorn Konstantinos Panagiotou
Seminar: Compiler-Konstruktion
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/ /2.1.
Gelegentlich wird nach einer Uhr in Powerpoint gefragt.
VS one Veranstalter: VSone Feb. 08 Folie 1 Copyright by XML-Serialisierung zur Persistierung von Objekten Thomas Schissler
Ein Rechensystem ist ein aus Hard- und Software bestehendes System zur Speicherung und Verarbeitung von Informationen.
Patric Boscolo Garbage Collection Patric Boscolo
Hauptgebiete der Informatik
Walter HAUER InteressenManagement Ing. Mag. Walter HAUER.
- Untersuchung von Realitätsnahen Problemen mit Funktionen
Deutsch 3, KM2, Kapitel 7: Adjektiv-Endungen nach ein- Wörtern.
Server.
Carnot-Zyklus Stirling-Motor
Vortrag für Fachdidaktik
Handlingsystem zum automatischen Einsortieren von Gleitlager - Bundbuchsen Frank Schulz (Fa. Mitutoyo Messgeräte GmbH) Alexander Mehl (Fa. Trützschler.
Was ist des agilen Pudels Kern?
Betriebliche Aufgaben effizient erfüllen
OO implementieren Teil IV Objekte erzeugen. © René ProbstModul 226IV - 2 Von der Klasse zum Objekt Plan Bau Objekt Klasse Instanzierung Objekt Das Objekt.
Hi, ich hab hier ein neues Programm, das würde ich gern auf meinem persönlichen System installieren. Es heißt LIEBE. Was soll ich denn da als erstes.
OpenSource Loadbalancer im Vergleich zu kommerziellen systemem Thomas stahl Diplomarbeit SS 2002.
GC-Tuning, Infopoint, Jörg Wüthrich1 GC-Tuning Erfahrungsbericht.
Java Performance Tuning Performance Tuning is similar to playing a strategy game but happily you usually get paid for it.
WWW Konferenz 2008 Feedback der 17. WWW-Konferenz Beijing, April 2008.
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lektion 14: Mehrfachvererbung.
Mark & Sweep Seminar Softwareentwicklung: Garbage Collection Eva Schartner.
Java Garbage Collection Angelika Kusel, Überblick Was ist Garbage Collection? Vor- und Nachteile von GC GC-Algorithmen/Verfahren Java Garbage.
EPROG Tutorium Einheit 4 Klassen und Objekte. Wiederholung Schleifen do... while while for break/continue Strings String char Methoden für Strings Arrays.
How to make a Pixar Movie
Entity Mapping Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Parallel Programming Thread Synchronization. Heute 1. Lösung zu Assignment 2 2. Erstellen und Starten von Threads in Java 3. Das synchronized Schlüsselwort.
Eine Präsentation von Peter Rasser
DER FRÜHLING Der Frühling beginnt am 21. März, aber in Nova Scotia ist es im März oft noch kalt, und das Wetter ist meist nicht schön. Erst im Mai wird.
Überblick über die Datenbankproblematik
Algorithm Engineering Parallele Algorithmen Stefan Edelkamp.
Mark – Compact GC & Performancemessungen Bernhard Prügl,
Common Language Runtime Seminar Softwareentwicklung Wintersemester 2003 Gertraud Orthofer
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.
Betriebssysteme Übung Tutorium „TLB & Virtual Memory“
Beispielanwendung von Java Threads
Data Mining Spectral Clustering Junli Zhu SS 2005.
Directors Prof. Dr.-Ing. K.D. Müller-Glaser Prof. Dr.-Ing. J. Becker Prof. Dr. rer. nat. W. Stork Institute for Information Processing Technology.
© 2008 TravelTainment The Amadeus Leisure Group Thread-Programmierung im Qt-Framework Von: Simon Lubberich Erstbetreuer:
© 2016 TravelTainment Einführung in die Garbage Collection Seminarvortrag Lars Frauenrath 1.
Dr. Wolfram Amme, Automatische Speicherverwaltung, Informatik II, FSU Jena, SS Automatische Speicherverwaltung.
Shared Memory Programmierung: Grundlagen
 Präsentation transkript:

(Mostly) Concurrent Garbage Collection Seminar aus Softwareentwicklung: Garbage Collection Günther Gsenger

(2/19) Übersicht Einleitung Idee des Algorithmus Implementierung von Boehm et al. Implementierung von Printezis, Detlefs Benchmarks

(3/19) Einleitung (1/2) Verschiedene Algorithmen der Garbage Collection Gemeinsamkeit: Stop-the-world-Phase Daher hohe Latenz von Programmen mit Garbage Collection Ungeeignet für: Echtzeitsysteme Serveranwendungen mit großen Datenmengen gewisse Desktopanwendungen

(4/19) Einleitung (2/2) Idee: Garbage Collector Thread parallel zu den Mutator Threads ablaufen lassen. Stop-the-world-Phasen minimieren Offensichtliche Probleme: Synchronisation im Allokator Mehrere Garbage Collectoren? Probleme

(5/19) Algorithmus - Probleme

(6/19) Algorithmus – Probleme + Lösung Wenn Referenzen in Objekten verändert werden, die bereits markiert sind, kann es zur Löschung von noch referenzierten Objekten kommen Lösung: Write-Barrier ( Unterstützung der Plattform) Objekte werden nicht gelöscht, obwohl sie nicht mehr referenziert werden Lösung: Bedauerlich aber diese Objekte werden beim nächsten Collection Zyklus mit Sicherheit gelöscht

(7/19) Algorithmus – Unterstützung der Plattform Plattform teilt dem Collector mit, wenn ein bereits markiertes Objekt verändert wird Der Collector kann diese Objekte erneut überprüfen Dadurch wird sichergestellt, dass keine referenzierten Objekte freigegeben werden Anderes Problem besteht weiterhin, wird vernachlässigt

(8/19) Boehm et al. - Einleitung Größtenteils paralleler Garbage Collector für primitive Sprachen wie C/C++ (1991) Keine Unterstützung einer virtuellen Maschine Unterstützung der Hardware Speicherschutzfunktionen der Hardware werden missbraucht Virtuelle Seiten auf read only gesetzt, Speicherschutzfehler-Signal abgefangen Signal deutet auf Veränderung innerhalb einer Speicherseite hin

(9/19) Boehm et al. - Beispiel Selbes Beispiel wie vorhin Signal, dass Seite verändert wurde wird abgehandelt und Seite gespeichert Gesamte veränderte Seite muss neu überprüft werden

(10/19) Boehm et al. - Nachteile Großer Overhead: Prozessor-Exception, Kontext-Switch zum/vom Betriebssystem Ungenaue Informationen: Virtuelle Speicherseiten sind üblicherweise im Userspace 4096 Byte groß. Alle Objekte in einer veränderten Seite müssen geprüft werden Ungenaue Typinformationen: Auch bei Schreibzugriffen auf nicht-Zeiger werden Speicherseiten invalidiert Anwendungsspezifisches Tuning: Wenn der Mutator mehr Speicher allokiert als der Collector freigibt, muss Speicher ausgelagert werden

(11/19) Printezis, Detlefs - Einleitung Generationeller, größtenteils nebenläufiger Garbage Collector für die Sun Microsystems Virtual Machine for Research (2000) Unterstützung der Plattform auf Softwareebene gegeben: Card Table Barrier Mod Union Table (neu eingeführt) Collector wird für Collection Zyklen in der alten Generation eingesetzt

(12/19) Card Table, Mod Union Table, 2- Instruction-Barrier Card Table wird von generationellem Garbage Collector benötigt, um Referenzen der alten Generation auf die junge zu erfassen Speicher wird in Karten mit Größe 2 k Bytes unterteilt Barrier ist Instruktionsfolge, die bei jedem Schreiben auf einen Zeiger die Speicherkarte markiert Schneller 2-Instruktionsbarrier wie von Urs Hölzle vorgeschlagen wird eingesetzt Mod Union Table ist Vereinigung der veränderten Karten. Wird von parallelem GC benötigt. Wird vom GC der jungen Generation vor Einsammlungszyklus geschrieben Invarianz zwischen Card Table und Mod Union Table.

(13/19) Card Table, Mod Union Table, 2- Instruction-Barrier ; ptr im Feld des Objekts speichern st[%obj + offset], %ptr ; den ungefähren Byte-Index berechnen sll%obj, k, %temp ; das Byte im Card Table löschen st%g0, [%byte_map + %temp]

(14/19) Mark & Sweep Mark-Phase: Externer Markierungsbitvektor Heap wird linear durchsucht Referenzen zurück im Speicher werden gleich untersucht Objekte, die nach der aktuellen Position sind nur markiert

(15/19) Mark & Sweep Sweep-Phase: Auch nebenläufig zum Mutator Vor Verändern der Blocklisten muss Lock angefordert werden Schnelles Durchsuchen des Markierungsbitvektors möglich

(16/19) Kontrollheurisitiken Wettrennen zwischen Mutator und Collector: Wer allokiert/delokiert schneller? Bei Multiprozessorsystemen: Collector arbeitet so schnell er kann, verliert möglicherweise das Rennen Bei Uniprozessorsystemen: Collector macht seine Pausen kürzer, wenn er merkt, dass er zu weit zurückfällt. Im Notfall: Notstopp des Programms und sequentielle Collection

(17/19) Printezis, Detlefs – Vor-/Nachteile + Weniger Overhead + Feinere Unterteilung der Art der Speicherzugriffe + Feinere Granularität + Parallelität zu anderen GC + Kontrollheuristiken - Großer Speicheroverhead wegen Markierungsbitvektor (3,125%) - Lineare Heapsuche

(18/19) Benchmarks

(19/19) Ende Danke für die Aufmerksamkeit