DGC 1. 2 Motivation x new(x) delete(x) Speicher DGC 3 Inhalt Einführung GC / DGC Der ideale DGC Algorithmen Zusammenfassung.

Slides:



Advertisements
Ähnliche Präsentationen
Kap. 13 Sweep-Line Algorithmen Kap Schnittprobleme
Advertisements

Routing – Routing Protokolle
Hash-Tabellen und -Funktionen Hash-Tabellen in Java
Eine dynamische Menge, die diese Operationen unterstützt,
<d,a,s, ,i,s,t, ,e,i,n,e, ,L,i,s,t,e>
Kapitel 3: Listen Lineare Liste: endliche Folge von Elementen eines Grundtyps (n>=0), leere Liste falls n=0 Listenelemente besitzen.
Vs61 6 Verteilte Datenverwaltung. vs62 Ziel:Zusammengehöriger Datenbestand soll über mehrere Stationen verteilt werden, z.B. Fragmentierung: in mehrere.
Replikationsarchitekturen Informationsverwaltung von Netzen Sommersemester 2003 Konrad Kretschmer
Enno Rehling und Roger Butenuth, Uni-GH Paderborn: Arminius: Software für Linux-basierte SCI-Cluster Arminius: Software für Linux-basierte SCI-Cluster.
SAP R/3 - Speichermanagement
Java: Dynamische Datentypen
Indirekte Adressierung
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
Garbage Collection Maik Theisen Betreuer: Guido Tack
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
Algorithmentheorie 04 –Hashing
Halbzeit: Kurze Wiederholung
Vorlesung Informatik 2 Algorithmen und Datenstrukturen Halbzeit: Was haben wir bisher gelernt? Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27-Selbstanordnende lineare Listen) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (07 - Skiplisten) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (05 – Elementare Datenstrukturen) Prof. Th. Ottmann.
Operationen auf verketteten Listen
Klausur „Diskrete Mathematik II“
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Kursleitung: Hier ist Platz für Ihren Namen
Verkettete Liste Visualisierung. New-Operator Mit dem New-Operator kann zur Laufzeit (dynamisch) Speicherplatz reserviert und angelegt werden Vorteil:
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.
Wir suchen ‘ mit m = m    ‘ c  ‘ mod 26
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Ralf KüstersDagstuhl 2008/11/30 2 Ralf KüstersDagstuhl 2008/11/30 3.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
7.1 Externes Suchen Bisherige Algorithmen: geeignet, wenn alle Daten im Hauptspeicher. Große Datenmengen: oft auf externen Speichermedien, z.B. Festplatte.
Splay Trees Von Projdakov Benjamin.
Eine Implementierung einer effiziente externe geordnete (!) lineare Liste Operationen: Search(x) Insert(x) Delete(x)
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Effiziente Algorithmen
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.
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Übung Datenbanksysteme II Index- strukturen
Einführung in die Programmiersprache C 4
… oder wie finde ich den Weg
Garbage Collection unter .NET
Stefan Loidl, , Reference Counting II Freigeben zyklischer Zellstrukturen.
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.
Ein Überblick über verschiedene Verfahren
Interprozess- kommunikation (IPC)
Betriebssysteme Übung Tutorium „TLB & Virtual Memory“
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Parallele Programmierung in Java
JAVA/DSM A Platform for Heterogeneous Computing Serge F. Possono M. Technische Universität Muenchen (TUM) Lehr- und Forschungseinheit Informatik X Rechnertechnik.
Parallelisierung für Multiprozessor-Maschinen
Analyse der Laufzeit von Algorithmen
Vs Objektpufferung (caching) = dynamische, ad-hoc-Replikation einer Primärkopie: Zugriffswilliger beschafft sich temporär eine lokale Kopie cache.
->Prinzip ->Systeme ->Peer – to – Peer
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Algorithmen und Datenstrukturen 1 SS 2002 Mag.Thomas.
Vs51 5 Verteilte Datenverwaltung. vs52 Situation:Zusammengehöriger Datenbestand ist über mehrere Stationen verteilt, z.B. Fragmentierung: in mehrere Fragmente.
Tutorium Software-Engineering SS14 Florian Manghofer.
THOMAS HANNEFORTH C++ IN DER CL II. GRUNDLEGENDE THEMEN Objektkonstruktion/ Objektdestruktion/ Zuweisung Objekte, Zeiger und Referenzen Wert und Referenzaufruf.
© 2016 TravelTainment Einführung in die Garbage Collection Seminarvortrag Lars Frauenrath 1.
Dr. Wolfram Amme, Automatische Speicherverwaltung, Informatik II, FSU Jena, SS Automatische Speicherverwaltung.
 Präsentation transkript:

DGC 1

2 Motivation x new(x) delete(x) Speicher

DGC 3 Inhalt Einführung GC / DGC Der ideale DGC Algorithmen Zusammenfassung

DGC 4 Was ist Garbage Collection? übersetzt: Müllsammlung Automatisierte Verwaltung von dynamisch zugewiesenem Speicher Bestimmung des vom Programm nicht mehr genutzten Speichers Freigeben dieses Speichers Bestandteil einer Programmiersprache, der Hardware, des Betriebssystems Was Manuelle Speicherverwaltung kostet Zeit und führt zu Fehlern Programme mit Speicherlecks mit wachsendem Internet von immer größerer Bedeutung Wofür

DGC 5 Roots Einblick lebendig tot Objekte Roots Root-Set Referenz

DGC 6 Reference Consistency Protocol Legt fest, wie Stubs und Scions erstellt werden Konsistenten Zustand bewahren Erreichbarkeit über Systemgrenzen sicher stellen u v stubscion

DGC 7 Allgemeine Probleme Statusabfrage mittels Nachrichten Kommunikation ist unzuverlässig Verteilte Systeme sind asynchron Systemausfälle Verteilte Zyklen Race Conditions Skalierbarkeit DGC

8 Eigenschaften eines idealen DGC Vollständig Kooperierend Schnell Effizient Lokal Zweckmäßig Skalierbar Fault tolerant Sicher

DGC 9 Algorithmen Counting-Algorithmen Zählen die Referenzen zu einem Objekt wenn keine Referenz existiert, wird Objekt entfernt z.B. Reference Counting Tracing-Algorithmen Durchlaufen des Referenz-Graphen von der Root-Set aus bis zu den Kindern z.B. Mark-Sweep Hybride-Algorithmen Komposition aus mehreren Algorithmen DGC Algorithmen sind modifizierte GC-Algorithmen Grundarten

DGC 10 Reference Counting Einfachster Algorithmus (1960) An jedem Objekt wird ein Zähler angehängt Dieser wird erhöht bzw. erniedrigt bei einer Vervielfältigung bzw. Löschung einer Referenz Wenn der Zähler = 0 ist, wird das Objekt aus dem Speicher entfernt 1 Im Detail u v stub

DGC 11 u v w +1 Race 12 u v w 10 ACK

DGC 12 einfache zu implementieren inkrementell Speicher wird in Echtzeit freigegeben skalierbar Jedes Objekt muss Platz für Zähler lassen Overhead an Pointer-Update-Operationen Race Conditions oder Bestätigungsnachrichten (ACK) erzeugen extra Traffic Nicht fault-tolerant Speicherfragmentierung Zyklen werden nicht erkannt Vorteile Nachteile Reference Counting

DGC 13 Distributed Garbage Cycle Garbage RARA RBRB RCRC 2 1 1

DGC 14 Weighted Reference Counting statt eines Counters werden Gewichte benutzt Jede entfernte Referenz hat zwei Gewichte Gesamt- und Teilgewicht (im scion) Ein stub beinhaltet nur das Teilgewicht Bei einer neuen entfernten Referenz: Hälfte des Gesamtgewichts an Referenz übergeben Bei Duplikation einer Referenz wird Teilgewicht halbiert entfernte Referenz erhält nur dekrement-Nachrichten, das sie vom Gesamtgewicht abzieht sind Gesamt- und Teilgewicht gleich, bestehen keine Referenzen mehr

DGC 15 x v 32/ control message: -16 Weighted Reference Counting RARA RBRB RCRC

DGC 16 Bei Gesamtgewicht von 2 k nur k Duplizierungen sein nicht fault-tolerant keine Beseitigung von Zyklen Vorteile Nachteile Benutzt nur wenige Nachrichten wenig Traffic Keine Race-Conditions Weighted Reference Counting

DGC 17 Reference Listing es gibt max. einen stub für einen scion scion gewöhnlich als doppelt verkettete Liste implementiert Operationen sind einfügen und löschen fault-tolerant Race Conditions bleiben bestehen (Lösung timeStamps) RARA RBRB RCRC x y v

DGC 18 Mark-Sweep Besteht aus 2 Phasen Phase 1 (Mark): Markieren der erreichbaren Objekte vom root-set aus Phase 2 (Sweep): Löschen aller unmarkierten Objekte in verteilten Systemen ist Mark-Phase global und Sweep- Phase lokal Algorithmus Tracing-Collector beginnen im root-set und verfolgen Referenzen alle nicht erreichbaren Objekte werden entfernt

DGC 19 root

DGC 20 automatisches beseitigen von zyklischen Datenstrukturen Kein Overhead bei Zeiger-Operationen fault-tolerant (bei Fehlern von vorn beginnen) Vorteile Nachteile Mark-Sweep Fragmentierung Garbage wird erst entfernt, wenn Speicher erschöpft Unterbricht das Programm während des Vorgangs Kosten sind proportional zur Größe des Systems schlecht skalierbar Trashing Synchronisationsproblem

DGC 21 Synchronisationsproblem AB C x RARA RBRB x is garbage Lösung Strenge Protokolle (globale Barriere) Am Ende jeder lokalen mark-Phase Barriere setzen Danach tritt globale sweep-Phase ein

DGC 22 Copying GC Erstmals in LISP verwendet (ca. 1965) Speicher wird in der Hälfte geteilt nur die lebendigen Objekte in den anderen Speicher bewegen aktuell veraltet Speicher aktuell veraltet

DGC 23 Keine Fragmentierung Einfache lineare Speicherzuordnung Keine Zyklen Kosten sind proportional zu den lebendigen Objekten Vorteile Nachteile Copying GC Kopieren ist teuer doppelte Größe des benutzten Speichers wird benötigt Garbage wird erst entfernt, wenn Speicher erschöpft schlecht skalierbar

DGC 24 Hybride GCs Kombinieren zwei oder mehreren Algorithmen meist wird Reference Counting Technik mit Tracing Technik kombiniert so werden auch Zyklen entfernt Tracing wird dabei weniger häufig ausgeführt wie Reference Counting Algortihmen sind z.B.: Migration, Trial Deletion und Local Tracing heuristische Suche nach Zyklen sind meist ineffizient (Overheads beim Löschen einer Referenz)

DGC 25 Zusammenfassung es gibt keinen perfekten Algorithmus Anpassung an die Systemumgebung Tracing-Algorithmen: sollten nur in kleinen Verteilten Systemen angewendet werden (wegen Synchronisation+schlechten Skalierbarkeit) nicht für Interaktive und RealTime-Anwendungen geeignet wenn Response-Time unwichtig, dann schneller als Counting Algorithmen Counting-Algorithmen: Verwendung in Systemen, wo Zyklen selten oder nicht vorhanden sind bei großen verteilten Systemen: fault-tolerant Counting-Algorithmus (reference listing)

DGC 26 Fragen ???