Copying Garbage Collection
|
|
- Carl Kappel
- vor 6 Jahren
- Abrufe
Transkript
1 opying Garbage ollection Guido Tack März 2002 Zusammenfassung opying Garbage ollection ist eine einfache, aber effiziente Methode zur automatischen Speicherverwaltung. In dieser usarbeitung im Rahmen des Seminars Garbage ollection im Wintersemester 2001/2002 wird die grundlege Idee hinter opying Garbage ollection beschrieben, heneys lgorithmus (der wichtigste weil effizienteste opying-lgorithmus) im etail erklärt sowie auf Vor- und Nachteile und Einsatzgebiete von opying Garbage ollection eingegangen. bschließ wird das Verhältnis von opying Garbage ollection zu anderen, moderneren Methoden erläutert. 1 Einleitung In dieser usarbeitung wird opying Garbage ollection vorgestellt, eine Methode zur automatischen Speicherbereinigung (Garbage collection, im Folgen durch G abgekürzt). opying G ist eine schon sehr alte Strategie zur Speicherverwaltung, die erste Implementierung stammt von Marvin Minsky aus dem Jahr 1963; Minsky implementierte einen opying Garbage ollector in Lisp 1.5 (siehe [9]). Trotzdem ist sie auch heute noch aktuell, entweder in ihrer Reinform oder als Grundlage modernerer lgorithmen. iese usarbeitung ist wie folgt gegliedert: Im bschnitt 2 wird die grundsätzliche Idee beschrieben, die hinter opying G steht. bschnitt 3 stellt den wichtigsten und grundlegen lgorithmus in diesem ereich vor. bschnitt 4 beschäftigt sich mit den Nachteilen, bschnitt 5 mit Variationen von opying G. Im 6. bschnitt wird diskutiert, wie die Effizienz des lgorithmus gesteigert werden kann, und bschnitt 7 zeigt die möglichen Einsatzgebiete von opying G auf. bschließ gibt bschnitt 8 einen usblick und eine Zusammenfassung. 2 ie Idee hinter opying G opying G teilt den logischen Speicher in zwei sogenannte Semi-Spaces auf: den -Space und den -Space. Zu jeder Zeit ist nur einer der beiden Speicherbereiche aktiv, nämlich der -Space. 1
2 ktiv bedeutet in diesem Zusammenhang: lle Operationen des Mutators arbeiten nur in diesem Speicherbereich, alle lebigen Zeiger zeigen nur in diesen ereich, und neuer Speicher wird nur in diesem ereich allokiert. Wenn die G angestoßen wird (üblicherweise, wenn kein Speicher mehr allokiert werden kann), werden alle lebigen Objekte aus dem -Space in den -Space kopiert und dann die Rollen der beiden ereiche vertauscht. abei müssen selbstverständlich alle Zeiger auf die kopierten Objekte umgeleitet werden. bbildung 1 zeigt exemplarisch den Zustand vor und nach dem Kopieren der Objekte. urch das anschließe Vertauschen der Rollen wird der -Space zum neuen -Space; das heißt, dass sowohl die ehemals lebigen Objekte als auch der Müll darin beim nächsten Kopiervorgang überschrieben werden. Insofern ist opying G eigentlich kein Garbage ollector, sondern eher ein Live Nodes ollector 1. Minsky s ollector benutzte die oben genannte ufteilung in Semi-Spaces noch nicht, sondern kopierte die lebigen Objekte in eine atei auf einem andlaufwerk, um sie von dort wieder linear in den Speicher einzulesen. ie Idee der Semi-Spaces im Speicher wurde von Robert Fenichel und Jerome Yochelson im Jahr 1969 in [6] beschrieben. Ihre Implementierung kopierte rekursiv die Objekte aus dem -Space in den -Space. Garbage Garbage bbildung 1: Vor und nach dem Kopieren bbildung 1 illustriert auch gleich einen großen Vorteil von opying G : Nach dem Kopieren liegen die Objekte linear und kompakt im -Space, opying G vermeidet also eine Fragmentierung des freien Speichers. Ein weiterer Vorteil ist die effiziente llokation von neuem Speicher, sie erfolgt einfach linear, beginn hinter dem letzten Objekt im -Space. 1 Ein solcher ollector wird auch oft Scavenger genannt. 2
3 3 heneys lgorithmus 3.1 Motivation ie naive Implementierung des oben beschriebenen lgorithmus würde den Graph der lebigen Objekte rekursiv durchsuchen und in den -Space kopieren. heney beschreibt in [5] einen lgorithmus, der im Gegensatz dazu iterativ arbeitet und deshalb nur konstanten Laufzeit-Stack benötigt. heneys lgorithmus ist die effizienteste Implementierung von opying G. 3.2 heneys nsatz reitensuche Um heneys lgorithmus zu verstehen, betrachten wir zunächst einen einfachen lgorithmus für reitensuche (breadth first search) in einem Graphen (bbildung 2). ieser durchmustert den gesamten Graphen, wobei er jeden Knoten nur einmal in die Queue einträgt. ie Laufzeit ist offensichtlich linear in der nzahl der Knoten. q = new queue for x in root set do q.pushack(x) x.marksseen while not q.isempty do d = q.popfront for x in d.children do if x.notyetseen then q.pushack(x) x.marksseen a) Pseudocode b) Illustration (Nummern geben die Reihenfolge der Exploration an) bbildung 2: reitensuche Eine Queue im -Space heneys Idee war jetzt, den -Space als Queue-atenstruktur zu nutzen. azu benötigt man zwei Zeiger, im Folgen und genannt, die beide in den -Space zeigen. 3
4 zeigt hinter das letzte kopierte Object und repräsentiert das Ende der Queue. zeigt auf das nächste zu ne Objekt und stellt den nfang der Queue dar. (Siehe bbildung 3; dort ist der Graph aus bbildung 1 zu sehen, von dem schon die Objekte, und in den -Space kopiert wurden. ist schon wieder aus der Queue entfernt und somit vollständig abgearbeitet.) bbildung 3: und, Forwarding Pointers (er Graph entspricht dem aus bbildung 1, einige Zeiger wurden durch Forwarding Pointer überschrieben: In Objekt wurde z.. der Zeiger auf mit überschrieben.) ie eschreibung des lgorithmus ist jetzt einfach: q.pushack entspricht dem Kopieren des Objekts in den -Space mit anschließem Verschieben von hinter das Ende des Objekts. q.popfront entspricht dem uslesen des Objekts an Position mit anschließem Verschieben von auf das nächste Objekt. q.isempty ist äquivalent zu =. (as bedeutet insbesondere, dass der lgorithmus terminiert, wenn sich und treffen.) Forwarding Pointers Ein wichtiger spekt muss aber noch berücksichtigt werden: ie Zeiger innerhalb der Objekte müssen entsprech auf die Kopien umgeleitet werden. er erste Fall ist dabei einfach: Wenn der lgorithmus ein Objekt erreicht und kopiert, schreibt er den Zeiger, über den das Objekt erreicht wurde, auf die neue dresse um (dieser Fall trifft auch auf Zeiger aus dem Root-Set zu). Etwas schwieriger wird es beim zweiten Fall: Was passiert, wenn ein schon kopiertes Objekt nochmal über einen Zeiger erreicht wird? In diesem Fall bedient man sich sogenannter Forwarding Pointer. Sobald ein Objekt kopiert wird, wird zum eispiel im ersten Feld des Original-Objektes die neue dresse hinterlegt. Wenn dieses Objekt jetzt nochmal erreicht wird, merkt der lgorithmus, dass es sich um ein schon kopiertes 4
5 Objekt handelt und kann den Zeiger, über den das Objekt erreicht wurde, entsprech umleiten (siehe ebenfalls bbildung 3) llokation ie llokation von neuem Speicher zwischen zwei G -Zyklen erfolgt linear, hierzu kann benutzt werden (der ja, nach Vertauschen der Rollen, jetzt im -Space liegt). Neuer Speicher wird dann allokiert, indem der aktuelle als nfang des Speicher-lockes zurückgegeben und dann hinter das Ende des lockes verschoben wird. er vollständige lgorithmus ist in bbildung 4, eine Illustration seiner Vorgehensweise in bbildung 5 zu sehen. 2 In der arstellung werden die Objekte in drei Farben dargestellt: Weiße Objekte gelten nach der Garbage ollection als Müll, graue Objekte wurden schon kopiert, aber noch nicht vollständig bearbeitet, bei schwarzen Objekten ist die earbeitung abgeschlossen. Konkret heißt das, dass alle Objekte im -Space weiß sind (und bleiben), in den -Space kopierte Objekte sind zuerst grau, und wenn über sie hinweggelaufen ist werden sie schwarz. Somit sind am Ende der G (wenn = ) alle lebigen Objekte schwarz. //q = new queue new = new pointer for x in root set do //pushack(x) copy(x, ) setforwardingpointer(x, ) x.marksseen +=sizeof(x) while not = do d = objectt( ) //q.popfront for x in d.children do if x.notyetseen then //q.pushack(c) copy(x, ) setforwardingpointer(x, ) new = x.marksseen +=sizeof(x) else new = getforwardingpointer(x) update(c.child(x), new) bbildung 4: heneys lgorithmus, Pseudocode 3.3 Voraussetzungen für den lgorithmus heneys lgorithmus macht folge Voraussetzungen über ufbau und Eigenschaften der behandelten Objekte: ie Größe eines Objekts muss bekannt sein, um und entsprech inkrementieren zu können. Zu jedem Objekt muss bekannt sein, wie man dessen Kinder erreicht, also wo im Objekt Zeiger auf andere Objekte stehen. 2 Eine animierte arstellung der Vorgehensweise des lgorithmus findet man in [11]. 5
6 bbildung 5: heneys lgorithmus, illustriertes eispiel (Nach dem 6. Schritt folgt noch die Vertauschung der Rollen von -Space und -Space.) 6
7 Objekte müssen als schon gesehen markiert werden können. Man benötigt zwei logisch zusammenhänge Speicher-löcke. ie letzte nnahme kann man insofern aufweichen, als dass man den lgorithmus relativ leicht so anpassen kann, dass er eine Kette von - und -Spaces benutzt (siehe bbildung 6). Spaces Spaces bbildung 6: Kette von Speicherblöcken 3.4 Eigenschaften des lgorithmus heneys lgorithmus hat einige wichtige Eigenschaften, die ihn interessant machen. Sie wurden teilweise schon oben erwähnt und sollen hier noch einmal zusammengefasst werden: ie wichtigste Eigenschaft von heneys lgorithmus ist der Speicherverbrauch: Es wird nur konstanter Speicher auf dem Stack benötigt. iese Eigenschaft ist es, die den lgorithmus so effizient macht und die auch zu seiner Verbreitung beigetragen hat. ie Laufzeit beträgt O(l), wenn l die nzahl der lebigen Objekte ist, da nur diese vom lgorithmus betrachtet werden 3. Zyklische atenstrukturen sowie Sharing 4 werden korrekt behandelt (mittels Forwarding Pointers). as heißt, dass bei der G die gesamte Struktur des Graphen in den -Space kopiert wird, Zykel und Sharing also erhalten bleiben. er freie Speicher ist nach der G kompakt, es tritt also keine Fragmentierung auf. heneys ollector ist ein Stop/Start-ollector, der Mutator muss also für die G angehalten werden. Zwischen zwei G -Zyklen ist dafür aber keine weitere rbeit zu leisten, insbesondere sind keine Lese- oder Schreibbarrieren nötig. 4 Nachteile der opying G 4.1 uf hoher Ebene ie Laufzeit von opying G hängt nicht nur von der nzahl der lebigen Objekte, sondern auch von deren Größe ab. Währ es bei kleinen Objekten keinen nennenswerten Unterschied macht, ob man sie nur markiert oder kopiert, kann das bei großen Objekten stark ins Gewicht 3 In [1] wird beschrieben, dass in SML/NJ währ der G nur etwa 2% der Objekte überleben; diese Eigenschaft trägt also stark zur Effizienz bei. 4 Sharing bedeutet, dass mehrere Zeiger auf dasselbe Objekt verweisen 7
8 fallen. Insbesondere für große, langlebige Objekte (die folglich oft kopiert werden müssen) ist opying G also nicht optimal. Ein weiterer Nachteil kann sein, dass die doppelte Menge an logischem Speicher nötig ist. as stellt auf modernen Rechnern dank virtuellem Speicher kein größeres Problem dar, kann aber evtl. bei kleinen rchitekturen wie zum eispiel Handhelds gegen opying G sprechen (siehe zum eispiel [3]). 4.2 uf niedriger Ebene ie reitensuche, die zum espiel in heneys lgorithmus benutzt wird, führt dazu, dass Objekte, die zuvor nahe beieinander im Speicher lagen, nach der G weit voneinander entfernt liegen können. ie sogenannte Lokalität wird also zerstört. Man kann annehmen, dass logisch, also vom Programmfluss her zusammenhänge Objekte kurz hintereinander erzeugt werden und deshalb (wegen der linearen llokation) nahe zusammen im Speicher liegen (siehe [7]). Wenn jetzt also nach der G wieder auf diese Objekte zugegriffen wird, liegen sie weit auseinander, so dass ache misses oder sogar Page faults auftreten können, die zu Performanz-Einbußen führen. iese spekte sind aber so stark von der Implementierung und der rchitektur, auf der diese laufen soll, abhängig, dass hier nicht weiter darauf eingegangen wird. 5 Variationen usgeh von den im vorigen bschnitt vorgestellten Nachteilen könnte man folge Variationen in etracht ziehen: 1. Spezielle ehandlung großer Objekte (Large Object reas). Große Objekte werden aus dem Zuständigkeitsbereich des opying Garbage ollectors herausgenommen und separat, mit einer anderen G -Strategie, behandelt (siehe [4], [13]). 2. ereiche langlebiger Objekte Objekte, von denen festgestellt werden kann, dass sie eine lange Lebenszeit haben, werden in speziellen ereichen gespeichert. Ihre Zeiger werden zwar gent (um andere lebige Objekte zu finden), sie werden aber nie kopiert. 3. eibehaltung der Lokalität durch andere Explorations-Strategien Tiefensuche (epth first search) hat die Eigenschaft, Lokalität zu bewahren. Es gibt einige nsätze, andere Explorationsstrategien, die der Tiefensuche ähnlich sind, zu benutzen, aber dabei ist es immer sehr schwierig, trotzdem mit konstantem Laufzeit-Stack auszukommen. Ohne die Eigenschaft kann man den lgorithmus nicht mehr als effizient betrachten. Einige eispiele kann man in [8] finden, genauere Informationen zum eispiel in [10] oder [12]. esonders der Punkt 2 ist dabei interessant. ie Forschung auf diesem ereich führte zur Entwicklung der generationalen G, bei dem unterschiedlich alte Objekte (Objekte verschiedener 8
9 Generationen) unterschiedlich behandelt werden. 6 Verbesserung der Effizienz Hier soll eine relativ einfache Möglichkeit vorgestellt werden, die Effizienz eines opying Garbage ollectors zu verbessern. Eine erste eobachtung (die eigentlich trivial ist) besagt, dass die Häufigkeit, mit der der Garbage ollector aufgerufen wird, abnimmt, wenn die Semi-Spaces größer sind. abei spielt aber noch eine weitere Tatsache eine Rolle: Üblicherweise ist der Speicherplatzbedarf der lebigen Objekte über die Laufzeit des Programmes relativ konstant. as heißt aber, dass der Garbage ollector, obwohl er seltener aufgerufen wird, die gleiche Menge an lebigen Objekten kopieren muss (siehe bbildung 7). Mehr noch: Je seltener die Garbage ollection einsetzt, desto älter werden die Objekte. Es ist also wahrscheinlich, dass bei größeren Semi-Spaces zum Zeitpunkt der G sogar weniger Objekte lebig sind. ies alles ist natürlich nur relevant, weil die Laufzeit von opying G nur von der nzahl der lebigen Objekte abhängt. Theoretisch lässt sich die Effizienz auf diesem Weg beliebig steigern, wie in [2] beschrieben wird. ie Vergrößerung der Semi-Spaces ist aber selbstverständlich nur dann sinnvoll, wenn sie innerhalb des physikalisch verfügbaren Speichers passiert. Ein uslagern eines Semi-Spaces auf Festplatte zum eispiel hätte katastrophale uswirkungen auf die Laufzeit. 7 Einsatzgebiete von opying G Wann ist es also sinnvoll, einen opying Garbage ollector einzusetzen? Hier lassen sich drei Kriterien identifizieren: 1. ie Speicherverwaltung wird von llokation dominiert. ei Systemen mit dieser Eigenschaft kann opying G große Vorteile gegenüber anderen Verfahren bieten, da llokation extrem billig ist. 2. Es gibt viele kleine, kurzlebige Objekte. Hier kann opying G punkten, da nur lebige Objekte behandelt werden. ußerdem ist das Kopieren kleiner Objekte fast genauso teuer wie das Markieren (zum eispiel also im Vergleich zu mark-sweep). 3. ie Verzögerung durch G spielt keine Rolle. Echtzeit-Systeme sind also kein typisches nwungsbeispiel für einen klassischen opying Garbage ollector. 9
10 2x3 M 3 M 2 M 2 M 2 M 2 M 2 M 13 M llokation 2x6 M 6 M 2 M 5 M bbildung 7: Effizienzsteigerung durch größere Semi-Spaces 8 Zusammenfassung und usblick opying G ist eine effiziente Methode, um eine automatische Speicherverwaltung zu implementieren. heneys lgorithmus ist die effizienteste Implementierung von opying G ; effizient wird sie dadurch, dass nur konstanter Stack zur Laufzeit benötigt wird und die Laufzeit der G nur von der nzahl der lebigen Objekte abhängt. Es wurde gezeigt, wie die Laufzeit von opying G von dem Parameter der Größe der Semi-Spaces abhängt. ußerdem wurden Probleme behandelt, die durch opying G auftreten, insbesondere was große Objekte und Lokalität angeht. bschließ wurde eine ewertung gegeben, in welchen Zusammenhang die enutzung eines Garbage ollectors mit opying sinnvoll sein kann und wo eher nicht. ie Idee, große Objekte getrennt zu behandeln, führt zur Entwicklung von hybriden Systemen, in denen ein Teil der G von einem opying ollector gemacht wird, ein anderer Teil aber zum eispiel von Mark-Sweep oder Mark-ompact. ls usblick sollte noch erwähnt werden, dass opying G die asis für viele andere G - Verfahren bildet: sowohl generationale als auch inkrementelle Verfahren bauen oft auf opying auf. 10
11 Literatur [1] ndrew W. ppel. ompilers and runtime systems for languages with garbage collection. [2] ndrew W. ppel. Garbage collection can be faster than stack allocation. Information Processing Letters, 25(4): , [3] Fred ayer, LispMe (Scheme for the Palm Pilot), hood.htm#gc. [4] Patrick J. audill and llen Wirfs-rock. third-generation Smalltalk-80 implementation. pages [5]. J. heney. non-recursive list compacting algorithm. ommunications of the M, 13(11):677 8, November [6] Robert R. Fenichel and Jerome. Yochelson. Lisp garbage collector for virtual memory computer systems. ommunications of the M, 12(11): , November [7] arry Hayes. Using key object opportunism to collect old objects. pages [8] Richard E. Jones and Rafael. Lins. Garbage ollection: lgorithms for utomatic ynamic Memory Management. John Wiley & Sons, New York, [9] Marvin L. Minsky. Lisp garbage collector algorithm using serial secondary storage. Technical Report Memo 58 (rev.), Project M, MIT, ambridge, M, ecember [10] avid. Moon. Garbage collection in a large LISP system. pages [11] Guido Tack, opying G, Seminar-Folien, gc.pdf. [12] Stephen P. Thomas and Richard E. Jones. Garbage collection for shared environment closure reducers. Technical Report 31 94, University of Kent and University of Nottingham, ecember [13] avid M. Ungar and Frank Jackson. Tenuring policies for generation-based storage reclamation. 23(11):1 17,
Programmiertechnik II
Automatische Speicherverwaltung Speichermüll Objekte verweisen über Referenzen auf andere Objekte Objekte bilden Graph Explizites Freigeben von Objekten C: free() C++: delete Problem:
MehrGarbage Collection. Maik Theisen Betreuer: Guido Tack
Garbage Collection Maik Theisen Betreuer: Guido Tack Proseminar Programmiersysteme WS 03/04 Prof. Dr. Gert Smolka Programming Systems Lab, Universität des Saarlandes Garbage Collection (GC) hat sich mittlerweile
MehrEarly first draft Höllische Programmiersprachen Seminar im WS 2014/15 Speichermanagement
Early first draft Höllische Programmiersprachen Seminar im WS 2014/15 Speichermanagement Max Haslbeck Technische Universität München 20.01.2015 Zusammenfassung 1 Einleitung 2 Begriffsklärung Heutzutage
MehrGrundlagen der Künstlichen Intelligenz
Grundlagen der Künstlichen Intelligenz 9. Klassische Suche: Tiefensuche und iterative Tiefensuche Malte Helmert Universität asel 21. März 2014 Tiefensuche Iterative Tiefensuche linde Suche: Zusammenfassung
Mehr9.1 Tiefensuche. Grundlagen der Künstlichen Intelligenz. 9.1 Tiefensuche. 9.2 Iterative Tiefensuche. 9.3 Blinde Suche: Zusammenfassung
Grundlagen der Künstlichen Intelligenz 21. März 2014 9. Klassische Suche: Tiefensuche und iterative Tiefensuche Grundlagen der Künstlichen Intelligenz 9. Klassische Suche: Tiefensuche und iterative Tiefensuche
MehrGoogle s JavaScript Engine: V8
Google s JavaScript Engine: V8 Thomas Hütter (1120239) Mario Preishuber (1120643) Fachbereich Computerwissenschaften Naturwissenschaftliche Fakultät 24. Februar 2014 1 von 17 INHALT Allgemein Was ist JavaScript?
MehrInformatik II SS Inhalt. Objektlebensdauer (2/3) Objektlebensdauer (1/3)
Inhalt Informatik II SS 2004 Teil 6: Sprachen, Compiler und Theorie 5 Lebensdauer von Objekten Speichermanagement Weiterführende Spracheigenschaften und Bindungen Implementierung von statischen Gültigkeitsbereichen
MehrConcurrent Garbage Collector
Concurrent Garbage Collector Sprachen für Parallelprogrammierung: Seminar 6 Emre Kasif Selengin IPD Snelting, Lehrstuhl Programmierparadigmen KIT Universität des Landes Baden-Württemberg und nationales
MehrSchwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen
Schwerpunkte 7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Vergleich: Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++): über Datenstrukturen
Mehr7. Verkettete Strukturen: Listen
7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Version: 4. Jan. 2016 Vergleich: Schwerpunkte Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++):
MehrFreispeicherverwaltung Martin Wahl,
Freispeicherverwaltung Martin Wahl, 17.11.03 Allgemeines zur Speicherverwaltung Der physikalische Speicher wird in zwei Teile unterteilt: -Teil für den Kernel -Dynamischer Speicher Die Verwaltung des dynamischen
Mehr6. Kapitel Speicherbereinigung
6. Kapitel Speicherbereinigung Prof. Dr. Gerhard Goos Übersetzerbau WS 2006/2007 (6) 1 Kapitel 6: Speicherbereinigung 1. Einleitung Alternativen Methodik 2. Markieren 3. Verfahren mit Freiliste mark-and-sweep
MehrZusammenfassung des 2. Abends
lgorithmen in der iologie r. Hans-Joachim öckenhauer r. ennis Komm Zusammenfassung des. bends Zürich, 0. pril 0 lignment-verfahren Für einen Überblick über die lignment-lgorithmen zur estimmung der Ähnlichkeit
Mehr6. Verkettete Strukturen: Listen
6. Verkettete Strukturen: Listen 5 K. Bothe, Inst. f ür Inf., HU Berlin, PI, WS 004/05, III.6 Verkettete Strukturen: Listen 53 Verkettete Listen : Aufgabe Vergleich: Arrays - verkettete Listen Listenarten
Mehr8 Elementare Datenstrukturen
Algorithmen und Datenstrukturen 186 8 Elementare Datenstrukturen In diesem und dem folgenden Kapitel werden grundlegende Techniken der Darstellung und Manipulation dynamischer Mengen auf Computern vorgestellt.
MehrWie groß ist die Page Table?
Wie groß ist die Page Table? Im vorigen (typischen) Beispiel verwenden wir 20 Bits zum indizieren der Page Table. Typischerweise spendiert man 32 Bits pro Tabellen Zeile (im Vorigen Beispiel brauchten
MehrLokale Strategien zur Garbage Collection Problemstellung der verteilten Gargabe Collection Algorithmen
Garbage Collection Überblick Literatur Lokale Strategien zur Garbage Collection Problemstellung der verteilten Gargabe Collection Algorithmen S. Blackburn et al: Starting with Termination: A Methodology
MehrProf. Dr. Margarita Esponda
Funktionale rogrammierung uffman-kodierung ildquelle: http://www.fim.uni-linz.ac.at/lva/echtlichespekte//tegano/bilder/huffman.gif Funktionale rogrammierung otivation ir möchten achrichten komprimieren:
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 11 (4.6.2014) Binäre Suchbäume II Algorithmen und Komplexität Binäre Suchbäume Binäre Suchbäume müssen nicht immer so schön symmetrisch sein
MehrInformatik II, SS 2016
Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 10 (27.5.2016) Binäre Suchbäume II Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 6 (14.5.2014) Abstrakte Datentypen, Einfache Datenstrukturen Algorithmen und Komplexität Abstrakte Datentypen : Beispiele Dictionary: (auch:
MehrÜbersicht Datenstrukturen und Algorithmen. Übersicht. Probleme auf kantengewichteten Graphen. Vorlesung 14: Minimale Spannbäume
Übersicht atenstrukturen und lgorithmen Vorlesung : Prof. r. rika Ábrahám Theorie ybrider Systeme Informatik http://ths.rwth-aachen.de/teaching/ss-/ datenstrukturen-und-algorithmen/ 1 reedy lgorithmen
MehrAlgorithmen I - Tutorium 28 Nr. 9
Algorithmen I - Tutorium 28 Nr. 9 29.06.2017: Spaß mit Graphen und Graphtraversierung Marc Leinweber marc.leinweber@student.kit.edu INSTITUT FÜR THEORETISCHE INFORMATIK (ITI), PROF. DR. JÖRN MÜLLER-QUADE
Mehr11. Elementare Datenstrukturen
11. Elementare Datenstrukturen Definition 11.1: Eine dynamische Menge ist gegeben durch eine oder mehrer Mengen von Objekten sowie Operationen auf diesen Mengen und den Objekten der Mengen. Dynamische
MehrMetriken und optimale Einsatzszenarien für Garbage Collectoren der Java HotSpot Virtual Machine
Metriken und optimale Einsatzszenarien für Garbage Collectoren der Java HotSpot Virtual Machine Michael Schmeißer michael@skamandros.de 25. September 2012 25.09.2012 Michael Schmeißer, Auswahl eines Garbage
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 17 (8.7.2014) Minimale Spannbäume II Union Find, Prioritätswarteschlangen Algorithmen und Komplexität Minimaler Spannbaum Gegeben: Zus. hängender,
MehrProgramm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 07 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München 7 Fortgeschrittene Datenstrukturen Graphen
MehrHuffman-Kodierung. Prof. Dr. Margarita Esponda
uffman-kodierung rof. r. argarita sponda otivation ir möchten achrichten komprimieren: - peicherplatzreduzierung => nergie und Zeit bei Übertragung sparen - ohne nformationsverlust - mit einer effizienten
MehrTechnische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen
Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 4 für die Übung
MehrEinführung in die Programmiersprache C
Einführung in die Programmiersprache C 6 Cache-freundliche Programmierung (1) Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Quadratische Matrizen Musterlösung
Mehr10. Übungsblatt zu Algorithmen I im SS 2010
Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter Sanders G.V. Batz, C. Schulz, J. Speck 0. Übungsblatt zu Algorithmen I im SS 00 http//algo.iti.kit.edu/algorithmeni.php
MehrALP II Dynamische Datenmengen Datenabstraktion
ALP II Dynamische Datenmengen Datenabstraktion O1 O2 O3 O4 SS 2012 Prof Dr Margarita Esponda M Esponda-Argüero 1 Dynamische Datenmengen Dynamische Datenmengen können durch verschiedene Datenstrukturen
Mehr14. Rot-Schwarz-Bäume
Bislang: Wörterbuchoperationen bei binären Suchbäume effizient durchführbar, falls Höhe des Baums klein. Rot-Schwarz-Bäume spezielle Suchbäume. Rot-Schwarz-Baum mit n Knoten hat Höhe höchstens 2 log(n+1).
MehrFreispeicherverwaltung
Freispeicherverwaltung Allgemeine Techniken und Anwendung unter Linux Martin Wahl, 17.11.03 Freispeicherverwaltung 1 Überblick Allgemeines Suchstrategien Verwaltungsstrategien externer / interner Verschnitt
MehrAlgorithmen & Komplexität
Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Breitensuche, Tiefensuche Wir besprechen nun zwei grundlegende Verfahren, alle Knoten eines Graphen zu
MehrNachtrag: Vergleich der Implementierungen von Stack
Nachtrag: Vergleich der Implementierungen von Stack In der letzten Vorlesung hatten wir zwei Implementierung der Klasse Stack: eine Implementierung als Liste (Array): liststack eine Implementierung als
MehrKapitel 2: Analyse der Laufzeit von Algorithmen Gliederung
Gliederung 1. Motivation / Einordnung / Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs
MehrALP II Dynamische Datenmengen Datenabstraktion (Teil 2)
ALP II Dynamische Datenmengen Datenabstraktion (Teil 2) O1 O2 O3 O4 SS 2012 Prof. Dr. Margarita Esponda 49 Einfach verkettete Listen O1 O2 O3 50 Einführung Einfach verkettete Listen sind die einfachsten
MehrAlgorithmen und Datenstrukturen Heapsort
Algorithmen und Datenstrukturen 2 5 Heapsort In diesem Kapitel wird Heapsort, ein weiterer Sortieralgorithmus, vorgestellt. Dieser besitzt wie MERGE-SORT eine Laufzeit von O(n log n), sortiert jedoch das
MehrKonzepte von Betriebssystemkomponenten Referat am Thema: Adressräume, Page Faults, Demand Paging, Copy on Write Referent: Johannes Werner
Konzepte von Betriebssystemkomponenten Referat am 24.11.2003 Thema: Adressräume, Page Faults, Demand Paging, Copy on Write Referent: Johannes Werner Gliederung Adressräume Page Faults Demand Paging Copy
MehrProgrammieren I. Kapitel 12. Referenzen
Programmieren I Kapitel 12. Referenzen Kapitel 12: Referenzen Ziel: Die Wahrheit über Objekte Lebensdauer Speicherverwaltung Parameterübergabemechanismen in Methoden Gleichheiten, Kopien Arrays Speicherbereinigung
Mehr3. Übungsblatt zu Algorithmen I im SoSe 2017
Karlsruher Institut für Technologie Prof. Dr. Jörn Müller-Quade Institut für Theoretische Informatik Björn Kaidel, Sebastian Schlag, Sascha Witt 3. Übungsblatt zu Algorithmen I im SoSe 2017 http://crypto.iti.kit.edu/index.php?id=799
Mehr10. Übungsblatt zu Algorithmen I im SoSe 2016
Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. r. ennis ofheinz Lukas arth, Lisa Kohl 0. Übungsblatt zu lgorithmen I im SoSe 0 https://crypto.iti.kit.edu/index.php?id=algo-sose
Mehr10.1 Blinde Suche Blinde Suche. Grundlagen der Künstlichen Intelligenz Breitensuche: Einführung BFS-Tree. 10.
Grundlagen der Künstlichen Intelligenz 13. März 2015 10. Klassische Suche: Grundlagen der Künstlichen Intelligenz 10. Klassische Suche: Malte Helmert Universität asel 13. März 2015 10.1 linde Suche 10.2
MehrEinführung in die Informatik
Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester
MehrWintersemester 2004/ Dezember 2004
Lehrstuhl für Praktische Informatik III Norman May B6, 29, Raum C0.05 68131 Mannheim Telefon: (0621) 181 2517 Email: norman@pi3.informatik.uni-mannheim.de Matthias Brantner B6, 29, Raum C0.05 68131 Mannheim
MehrSchreiben von Pages. Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen).
Schreiben von Pages Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen). Write Through Strategie (siehe Abschnitt über Caching) ist hier somit nicht sinnvoll. Eine sinnvolle
MehrLösungsvorschläge zur Hauptklausur 1661 Datenstrukturen I
Lösungsvorschläge zur Hauptklausur 1 atenstrukturen I 7.. ernuniversität in Hagen lle Rechte vorbehalten Seite 2 Lösungsvorschläge zur Klausur vom 7.. Kurs 1 atenstrukturen I ufgabe 1 (a) algebra sorts
MehrInformatik II, SS 2016
Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 13 (8.6.2016) Graphenalgorithmen I Algorithmen und Komplexität Graphen Knotenmenge V, typischerweise n V Kantenmenge E, typischerweise
Mehr15. Elementare Graphalgorithmen
Graphen sind eine der wichtigste Modellierungskonzepte der Informatik Graphalgorithmen bilden die Grundlage vieler Algorithmen in der Praxis Zunächst kurze Wiederholung von Graphen. Dann Darstellungen
MehrAlgorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 2016/17 13. Vorlesung Binäre Suchbäume Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Dynamische Menge verwaltet Elemente einer sich ändernden Menge
MehrBreitensuche BFS (Breadth First Search)
Breitensuche BFS (Breadth First Search) Algorithmus BREITENSUCHE EINGABE: G = (V, E) als Adjazenzliste, Startknoten s V 1 Für alle v V 1 If (v = s) then d[v] 0 else d[v] ; 2 pred[v] nil; 2 Q new Queue;
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen B4. Priority Queues und Heaps Marcel Lüthi and Gabriele Röger Universität Basel 28. März 2018 Einführung Kollektion von Elementen Grundlegende Operationen sind Einfügen
MehrVoronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK
Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 29.05.2011 Das Postamt-Problem b(p, q) = {x R 2 : xp = xq } p q h(p, q) h(q, p) = {x :
MehrJava Garbage Collector: Funktionsweise und Optimierung. Mathias Dolag Prof. Dr. Peter Mandl (DOAG 2012, )
Java Garbage Collector: Funktionsweise und Optimierung Mathias Dolag Prof. Dr. Peter Mandl (DOAG 2012, 20.11.2012) 1 Agenda Algorithmen Tuning Performance-Messungen Zusammenfassung 2 Mathias Dolag / Prof.
MehrAlgorithmen I. Tutorium 1-3. Sitzung. Dennis Felsing
Algorithmen I Tutorium 1-3. Sitzung Dennis Felsing dennis.felsing@student.kit.edu www.stud.uni-karlsruhe.de/~ubcqr/algo 2011-05-02 Überblick 1 Sortieren und Suchen 2 Mastertheorem 3 Datenstrukturen 4 Kreativaufgabe
MehrDynamisches Huffman-Verfahren
Dynamisches Huffman-Verfahren - Adaptive Huffman Coding - von Michael Brückner 1. Einleitung 2. Der Huffman-Algorithmus 3. Übergang zu einem dynamischen Verfahren 4. Der FGK-Algorithmus 5. Überblick über
MehrUniversität Hamburg. Seminar: Effiziente Programmierung in C. Referenzzählung. Autoren: Kevin Köster. Betreuer: Michael Kuhn
Universität Hamburg Seminar: Effiziente Programmierung in C Referenzzählung Autoren: Kevin Köster Betreuer: Michael Kuhn 31. März 2013 Inhaltsverzeichnis 1 Einleitung 3 1.1 Das Problem.................................
MehrBeispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5
Robert Elsässer Paderborn, den 15. Mai 2008 u.v.a. Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5 AUFGABE 1 (6 Punkte): Nehmen wir an, Anfang bezeichne in einer normalen
MehrGrundlagen der Künstlichen Intelligenz
Grundlagen der Künstlichen Intelligenz 14. Klassische Suche: IDA Malte Helmert Universität Basel 31. März 2014 Klassische Suche: Überblick Kapitelüberblick klassische Suche: 3. 5. Einführung 6. 9. Basisalgorithmen
MehrGlobalübungsaufgabe1 (All Pair Shortest Path):
Prof. aa r. Ir. G. Woeginger atenstrukturen und lgorithmen SS7 Tutoriumslösung - Übung 0 (bgabe 2.07.207) T. Hartmann,. Korzeniewski,. Tauer Globalübungsaufgabe (ll Pair Shortest Path): etrachten Sie den
MehrPeg-Solitaire. Florian Ehmke. 29. März / 28
Peg-Solitaire Florian Ehmke 29. März 2011 1 / 28 Gliederung Einleitung Aufgabenstellung Design und Implementierung Ergebnisse Probleme / Todo 2 / 28 Einleitung Das Spiel - Fakten Peg-33 33 Löcher, 32 Steine
MehrÜbersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015
Datenstrukturen und Algorithmen Vorlesung 8: (K6) 1 Joost-Pieter Katoen Lehrstuhl für Informatik Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-15/dsal/ 7. Mai 015 3 Joost-Pieter
MehrAutomatisches Speichermanagement
Automatisches Speichermanagement Compilerbau Automatisches Speichermanagement 284 Automatisches Speichermanagement Viele moderne Programmiersprachen verfügen über automatisches Speichermanagement. Durch
MehrImplementierung eines Baumes (in Python)
Satz: in maximal vollständiger binärer aum der Höhe h enthält 2 h-1 lätter und 2 h -1 Knoten und 2 h-1-1 inneren Knoten. eweis: 1. nduktionsanfang: h= 1 Der aum besteht nur aus der Wurzel, die auch das
MehrGraphalgorithmen I. Yannik Tannhäuser Hallo Welt! -Seminar LS 2
Graphalgorithmen I Yannik Tannhäuser 22.05.2019 Hallo Welt! -Seminar LS 2 Motivation Königsberger rückenproblem, 1736 von Leonhard uler gelöst Viele Probleme lassen sich auf (auch heute noch) Graphen übertragen
MehrTutoraufgabe 1 (Floyd-Warshall):
für Informatik Prof. aa r. Ir. Joost-Pieter Katoen atenstrukturen und lgorithmen SS hristian ehnert, Friedrich Gretz, enjamin Kaminski, Thomas Ströder Tutoraufgabe (Floyd-Warshall): etrachten Sie den folgenden
MehrEinführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen. Sebastian Küpper
Einführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen Sebastian Küpper Unzulänglichkeit von Feldern Wenn ein Unternehmen alle Rechnungen eines Jahres verwalten möchte,
MehrInformatik II, SS 2018
Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 15b (13.06.2018) Graphenalgorithmen IV Algorithmen und Komplexität Prims MST-Algorithmus A = while A ist kein Spannbaum do e = u, v ist
MehrDatenstrukturen und Algorithmen. Vorlesung 8
Datenstrukturen und Algorithmen Vorlesung 8 Inhaltsverzeichnis Vorige Woche: ADT Stack ADT Queue Heute betrachten wir: ADT Deque ADT Prioritätsschlange Binomial-Heap Schriftliche Prüfung Informationen
Mehr3. Hausübung Algorithmen und Datenstrukturen
Prof. Dr. Gerd Stumme, Folke Eisterlehner, Dominik Benz Fachgebiet Wissensverarbeitung 3. Hausübung Algorithmen und Datenstrukturen Sommersemester 2009 Abgabetermin: Montag, 18.05.2009, 10:00 Uhr 11.05.2009
MehrAlgorithmen und Datenstrukturen, FS17 Prof Dr Christian Tschudin
Departement Mathematik und Informatik Algorithmen und Datenstrukturen, FS17 Prof Dr Christian Tschudin 12. April 2017 Union-Find Datenstruktur Graphen I Robert E. Tarjan Algorithmen und Datenstrukturen,
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 13 (18.6.2014) Binäre Suchbäume IV (Rot Schwarz Bäume) Algorithmen und Komplexität Rot Schwarz Bäume Ziel: Binäre Suchbäume, welche immer
Mehr11. Rekursion, Komplexität von Algorithmen
nwendung der Rekursion 11. Rekursion, Komplexität von lgorithmen Teil 2 Java-eispiele: Power1.java Hanoi.java Rekursiv definierte Funktionen - Fibonacci-Funktion - Fakultät, Potenz -... Rekursiver ufbau
MehrBeispiellösungen zu Blatt 107
µ κ Mathematisches Institut eorg-ugust-universität öttingen ufgabe 1 eispiellösungen zu latt 107 onstruiere eine Menge M aus 107 positiven ganzen Zahlen mit der folgenden igenschaft: eine zwei der Werte
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2018 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Organisatorisches: Keine Vorlesung nächste Woche wegen
MehrGraphenalgorithmen I
Graphenalgorithmen I Vortrag im Seminar Hallo Welt! für Fortgeschrittene 7. Juni 211 Graphenalgorithmen I 1/33 Motivation Problem Wie komme ich am schnellsten ins Kanapee? Problem Wie kommt ein Datenpaket
MehrVorlesung Informatik 2 Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (13 Offenes Hashing) Prof. Dr. Susanne Albers Hashing: Allgemeiner Rahmen Schlüsselmenge S Universum U aller möglichen Schlüssel Hashfunktion h 0,,m-1
MehrAlgorithmen I - Tutorium 28 Nr. 3
Algorithmen I - Tutorium 28 Nr. 3 18.05.2016: Spaß mit Listen, Arrays und amortisierter Analyse Marc Leinweber marc.leinweber@student.kit.edu INSTITUT FÜR THEORETISCHE INFORMATIK (ITI), PROF. DR. JÖRN
MehrDatenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen
Bäume sind verallgemeinerte Listen Datenstrukturen Teil 2 Bäume Jeder Knoten kann mehrere Nachfolger haben Sie sind weiter spezielle Graphen Graphen bestehen aus Knoten und Kanten Kanten können gerichtet
MehrIR Seminar SoSe 2012 Martin Leinberger
IR Seminar SoSe 2012 Martin Leinberger Suchmaschinen stellen Ergebnisse häppchenweise dar Google: 10 Ergebnisse auf der ersten Seite Mehr Ergebnisse gibt es nur auf Nachfrage Nutzer geht selten auf zweite
MehrEffiziente Algorithmen Übung 2
Effiziente Algorithmen Übung 2 Aufgabe 3 Circular Reversal Sort Gruppe E Martin Schliefnig, 0160919 Christoph Holper, 9927191 Ulrike Ritzinger, 0125779 1. Problemstellung Ein DNA Molekül muss nicht immer
MehrGrundlagen der Künstlichen Intelligenz
Grundlagen der Künstlichen Intelligenz 6. Klassische Suche: Datenstrukturen für Suchalgorithmen Malte Helmert Universität Basel 7. März 2014 Klassische Suche: Überblick Kapitelüberblick klassische Suche:
MehrAlgorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B3.1 Einführung. B3.2 Verkettete Liste. B3.3 Bäume
Algorithmen und Datenstrukturen 22. März 2018 B3. Verkettete Listen und Bäume Algorithmen und Datenstrukturen B3. Verkettete Listen und Bäume B3.1 Einführung Marcel Lüthi and Gabriele Röger B3.2 Verkettete
MehrInformatik II, SS 2016
Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 12 (4.6.2018) Graphenalgorithmen I Yannic Maus Algorithmen und Komplexität Graphen Knotenmenge V, typischerweise n V Kantenmenge E, typischerweise
MehrInformatik II, SS 2016
Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 6 (6.5.2016) Abstrakte Datentypen, Einfache Datenstrukturen Algorithmen und Komplexität Abstrakte Datentypen : Beispiele Dictionary: (auch:
MehrFormale Systeme, WS 2010/2011 Lösungen zum Übungsblatt 1
Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. r. B. Beckert Thorsten Bormer Formale Systeme, WS 2/2 Lösungen zum Übungsblatt ieses Blatt wurde in der Übung am 29..2 besprochen.
MehrTutoraufgabe 1 (Implementierung eines ADTs):
Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Tutoriumslösung - Übung (Abgabe.05.0) F. Corzilius, S. Schupp, T. Ströder Tutoraufgabe (Implementierung eines ADTs): Wir spezifizieren den ADT
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen B3. Verkettete Listen und Bäume Marcel Lüthi and Gabriele Röger Universität Basel 22. März 2018 Einführung Abstrakter Datentyp / Datenstruktur Abstrakter Datentyp Eine Menge
MehrFallstudie: Online-Statistik
Fallstudie: Online-Statistik Ziel: Klasse / Objekt, welches Daten konsumiert und zu jeder Zeit Statistiken, z.b. Mittelwert, Varianz, Median (etc.) ausgeben kann Statistics s = new Statistics(maxSize);...
MehrKrawatterätsel - Verbesserung der oberen Schranke
Krawatterätsel - Verbesserung der oberen Schranke Felix Kälberer, Matthias Nieser, Ulrich Reitebuch 29. Dezember 2008 Zusammenfassung Die folgenden Seiten beschreiben neue Erkenntnisse im Krawattenrätsel.
MehrKrawattenrätsel - Verbesserung der oberen Schranke
Krawattenrätsel - Verbesserung der oberen Schranke Felix Kälberer, Matthias Nieser, Ulrich Reitebuch 9. Dezember 008 Zusammenfassung Die folgenden Seiten beschreiben neue Erkenntnisse im Krawattenrätsel.
MehrDynamische Speicherverwaltung
Dynamische Speicherverwaltung 1/ 23 Dynamische Speicherverwaltung Tim Dobert 17.05.2013 Dynamische Speicherverwaltung 2/ 23 Gliederung 1 Allgemeines zur Speichernutzung 2 Ziele und Nutzen 3 Anwendung in
MehrDivide and Conquer. Teile-und-herrsche. Ferd van Odenhoven. 7. Oktober 2010
7. Oktober 2010 eile und Herrsche eile-und-herrsche (Divide-and-conquer) Divide and Conquer Ferd van Odenhoven Fontys Hogeschool voor echniek en ogistiek Venlo Software ngineering 7. Oktober 2010 OD/FHB
MehrProgrammierkurs Python II
Programmierkurs Python II Michaela Regneri & Stefan Thater FR 4.7 Allgemeine Linguistik (Computerlinguistik) Universität des Saarlandes Sommersemester 2011 Prüfungsleistungen Klausur am Semesterende -
MehrDatenstrukturen und Algorithmen. 7. Suchen in linearen Feldern
Datenstrukturen und Algorithmen 7. Suchen in linearen Feldern VO 708.031 Suchen in linearen Feldern robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische
MehrVerschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes
Verschlüsseln eines Bildes Visuelle Kryptographie Anwendung von Zufallszahlen Wir wollen ein Bild an Alice und Bob schicken, so dass Alice allein keine Information über das Bild bekommt Bob allein keine
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen B7. Balancierte Bäume 1 Marcel Lüthi and Gabriele Röger Universität Basel 13. April 2018 1 Folien basieren auf Vorlesungsfolien von Sedgewick & Wayne https://algs4.cs.princeton.edu/lectures/33balancedsearchtrees-2x2.pdf
Mehr6 Speicherorganisation
Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen Speicherbereich für
Mehr