Dr. Wolfram Amme, Automatische Speicherverwaltung, Informatik II, FSU Jena, SS 2002 1 Automatische Speicherverwaltung.

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Punkt-in-Polygon-Verfahren III (R/R+-Baum)
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.
Kapitel 11 Deadlocks RW-Systemarchitekur Kap. 11.
Eine dynamische Menge, die diese Operationen unterstützt,
Dr. Brigitte Mathiak Kapitel 10 Physische Datenorganisation.
1 Was ist ein klassischer Prozess? A eine exe-Datei B log. Adressraum, Ablaufumgebung für genau einen Thread C log. Adressraum, Ablaufumgebung für eine.
Übersicht RAID-Verfahren Labor für Betriebsdatenverarbeitung
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (22 – B-Bäume)
3. Kapitel: Komplexität und Komplexitätsklassen
2. 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.
SAP R/3 - Speichermanagement
FH-Hof Deadlocks Richard Göbel. FH-Hof Deadlock - Definition Menge von Prozessen ist an einem Deadlock beteiligt: wenn jeder Prozess in dieser Menge auf.
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.
Java: Referenzen und Zeichenketten
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 (27 – Kürzeste Wege) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (15 Hashverfahren: Verkettung der Überläufer) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 16 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Algorithmen und Datenstrukturen
Externe Datenstruktur lineare Liste
DVG Klassen und Objekte
Visualisierung funktionaler Programme
G.Meininghaus, Konstanz1 Bilder / Fotos per verschicken.
Speicherverwaltung durch Swapping
Systeme 1 Kapitel 4 Prozesse WS 2009/10.
Effiziente Algorithmen
Splay Trees Von Projdakov Benjamin.
2. Die rekursive Datenstruktur Baum 2
Eine Implementierung einer effiziente externe geordnete (!) lineare Liste Operationen: Search(x) Insert(x) Delete(x)
1. Die rekursive Datenstruktur Liste 1.1 Warteschlange (Queue)
Entstehung & Einflüsse Ideen, Wünsche, eigene Überlegungen bisheriges Dateisystem Einschrän- kungen: - technisch - zeitlich - fachlich Literatur, ältere.
Java Garbage Collection Angelika Kusel, Überblick Was ist Garbage Collection? Vor- und Nachteile von GC GC-Algorithmen/Verfahren Java Garbage.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 7 SS 2000 Punkt-in-Polygon-Verfahren I (Trapezkarte)
Effiziente Algorithmen
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
1.2 Trennung von Struktur und Inhalt
1.5 Das Entwurfsmuster Kompositum
Garbage Collection unter .NET
Replikation und Synchronisation
TR90 LTO ZUTEILUNG Sie: 0 Mark GEKAUFT 10 Paket(e) für Zuteilung verbleibend Circle Group: suchen Name Titel Zugeteilte Pakete Kontingent: Anzahl 0 0 GEKAUFT.
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.
Informatik Datenstruktur Graph 3.3 Durchlaufen von Graphen
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
Der A*-Algorithmus.
C Tutorium – Memory Management – Knut Stolze. 2 Agenda Einführung in die Speicherverwaltung Stack vs. Heap Malloc Free Sizeof Tipps/Hinweise.
Spatial Partition Game Programming Patterns / Optimization Patterns AM3: Softwaretechnologie II (Teil 2): Simulation und 3D Programmierung Dozent: Prof.
Programmiersprachen II Fortsetzung Datenstrukturen Hashing Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Dr. Wolfram Amme, Semantik funktionaler Programme, Informatik II, FSU Jena, SS Semantik funktionaler Programme.
Dr. Wolfram Amme, Virtuelle Vererbung, Informatik II, FSU Jena, SS Auflösung von Konflikten bei Mehrfachvererbung Umbenennung mehrdeutiger Methoden.
1 Grundsätze objektorientierter Programmierung. Dr. Wolfram Amme, Grundsätze objektorientierter Programmierung, Informatik II, FSU Jena, SS Objektorientierte.
© 2016 TravelTainment Einführung in die Garbage Collection Seminarvortrag Lars Frauenrath 1.
Strukturen (Eigenschaften) Strukturen dienen zur Zusammenfassung mehrerer Komponenten verschiedener Typen zu einer Einheit, die dann mit gemeinsamen Namen.
Pointer. * und &  Bei der Definition int var1; ○ // „normale“ Variable int *var2; ○ // Zeiger auf einen Integer int *var2 = NULL; ○ // … incl. Initialisierung.
Dr. Wolfram Amme, Funktionale Programmierung, Informatik II, FSU Jena, SS Funktionale Programmierung.
Dynamischer Speicher malloc wird in c++ eher nicht mehr verwendet.
1. Die rekursive Datenstruktur Liste 1
 Präsentation transkript:

Dr. Wolfram Amme, Automatische Speicherverwaltung, Informatik II, FSU Jena, SS Automatische Speicherverwaltung

Dr. Wolfram Amme, Automatische Speicherverwaltung, Informatik II, FSU Jena, SS Speicherverwaltung funktionaler Sprachen eine Eigenschaft der Laufzeitumgebung funktionaler Sprachen ist die effiziente, automatische Zuteilung und Freigabe von Speicher stapelbasierte Ansätze können nicht verwendet werden, da Referenzen auf im Funktionsrahmen angelegte Parameterwerte auch nach Ausführung des Funktionsaufrufes existieren können Einfachste Möglichkeit: Überhaupt keinen Speicher freigeben bei jedem Funktionsaufruf wird ein Funktionsrahmen angelegt, der beim Verlassen der Funktion nicht freigegeben wird korrekt und einfach zu implementieren, jedoch läuft der Speicher bei einem solchen Verfahren sehr schnell voll Verfahren zur automatischen Speicherverwaltung unterscheiden Verwaltung des für die Zuteilung verfügbaren freien Speichers Rückgewinnung von vorher zugeteiltem Speicher

Dr. Wolfram Amme, Automatische Speicherverwaltung, Informatik II, FSU Jena, SS Verwaltung des freien Speichers das Betriebssystem stellt dem auszuführenden Programm einen zusammenhängenden Block an Speicher zur Verfügung freier Speicher innerhalb dieses Blockes wird mit einer Liste freier Blöcke verwaltet belegt frei

Dr. Wolfram Amme, Automatische Speicherverwaltung, Informatik II, FSU Jena, SS Speicheranforderung (First-Fit-Strategie) Speichermanager durchsucht die Freispeicherliste nach dem ersten Block der einer angeforderten Speichergröße genügt First-Fit ist immer dann die beste Strategie, wenn die Speicheranforderungen exponentiell verteilt sind Speicheranforderung

Dr. Wolfram Amme, Automatische Speicherverwaltung, Informatik II, FSU Jena, SS Speicheranforderung (Best-Fit-Strategie) Speichermanager durchsucht gesamte Freispeicherliste nach dem kleinsten Block, der einer angeforderten Speichergröße genügt Best-Fit ist immer dann die beste Strategie, wenn die Speicheranforderungen gleichverteilt sind Speicheranforderung

Dr. Wolfram Amme, Automatische Speicherverwaltung, Informatik II, FSU Jena, SS Speicherfreigabe wird Speicher zurückgewonnen, dann werden die Blöcke wieder in die Freispeicherliste eingetragen nicht mehr benötigte Blöcke Speicherfreiliste nach Verschmelzung der Blöcke

Dr. Wolfram Amme, Automatische Speicherverwaltung, Informatik II, FSU Jena, SS Speicherrückgewinnung (Referenzzählen) Referenzzählen ist ein ungeduldiges Verfahren der Speicherrückgewinnung, da es versucht nicht mehr benötigte Blöcke schnellst möglich zurückzugewinnen jeder zugeteilte Block erhält ein zusätzliches Zählerfeld, in dem die Anzahl an Referenzen auf einen Block abgelegt werden immer wenn eine Referenz geändert wird, müssen die Referenzzähler aktualisiert werden fällt ein Referenzzähler auf Null, dann kann ein Block an die Freispeicherliste zurückgegeben werden in der Praxis hat dieses Verfahren eine Menge an Nachteilen zusätzlicher Speicher für die Referenzzähler wird benötigt Referenzzähler müssen rekursiv aktualisiert werden zyklische Datenstrukturen können entstehen, für die Speicher nie mehr freigegeben werden kann

Dr. Wolfram Amme, Automatische Speicherverwaltung, Informatik II, FSU Jena, SS Speicherrückgewinnung (Markieren und Suchen) Markieren und Suchen ist ein faules Verfahren, da die Rückgewinnung zurückgestellt wird, bis kein Speicher mehr da ist bei einem Speicherüberlauf wird folgende Prozedur ausgeführt: durch rekursives Verfolgen aller Programmreferenzen werden die noch angesprochenen Speicherblöcke markiert anschließend wird der Speicher linear durchlaufen und nicht markierte Speicherblöcke freigegeben Vorteile gegenüber Speicherrückgewinnung mit Referenzzählen Minimierung des zur Markierung benötigten Speichers keine Probleme bei der Speicherrückgewinnung zyklischer Datenstrukturen Nachteil des Verfahrens: Aufruf des Garbage Collectors kann die Ausführung des Programms sekundenlang zum Stillstand bringen.

Dr. Wolfram Amme, Automatische Speicherverwaltung, Informatik II, FSU Jena, SS Verbesserung (Markieren und Suchen) Speicher wird in zwei gleich große Teile unterteilt, wobei nur einer dieser Teile dem Programm zugeordnet wird beim Speicherüberlauf werden die durch rekursives Verfolgen aller Programmreferenzen gefundenen, noch angesprochenen, Speicherblöcke in den nicht benutzten Teil des Speichers kopiert Programm arbeitet anschließend auf dem Teil des Speichers, in dem die noch angesprochenen Speicherblöcke kopiert wurden dieses Verfahren benötigt keinen zusätzlichen Speicherplatz zur Markierung keinen zweiten Durchlauf durch die Freispeicherliste keine Verschmelzung der freizugebenden Speicherblöcke Laufzeitverhalten während der Speicherrückgewinnung wird jedoch nur gering verbessert