Top Banner
Universität zu Köln Historisch- Kulturwissenschaftliche Informationsverarbeitung Hauptseminar: Intelligente Dateisysteme Dozent: Prof. Manfred Thaller Referent/in: Corinna Asselborn Wintersemester 2013/14 Organizing Files for Performance
26

Organizing Files for Performance

Feb 04, 2016

Download

Documents

gyda

Organizing Files for Performance. Universität zu Köln Historisch- Kulturwissenschaftliche Informationsverarbeitung Hauptseminar: Intelligente Dateisysteme Dozent: Prof. Manfred Thaller Referent/in: Corinna Asselborn Wintersemester 2013/14. Überblick. 1. Datenkompression - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Organizing  Files  for  Performance

Universität zu Köln

Historisch- Kulturwissenschaftliche Informationsverarbeitung

Hauptseminar: Intelligente Dateisysteme

Dozent: Prof. Manfred Thaller

Referent/in: Corinna Asselborn

Wintersemester 2013/14

Organizing Files for Performance

Page 2: Organizing  Files  for  Performance

1. Datenkompression- 1.1 Was ist das?- 1.2 Reversible Kompression – Irreversible Kompression- 1.3 Reversible Kompression – run-length encoding- 1. 4Variable-length records: Huffman Code- 1.5 Irreversible Kompression 2. Regenerierung von Speicherplatz & Datenorganisation- 2.1 Datenorganisation Einstieg- 2.2 Record Deletion bei Fixed-length records - 2.3 Record Deletion bei Variable-length records- 2.4 Probleme der Datenoragnisation: Fragmentierung - 2.5 Defragmentierung & Placement strategies 3. Suchverfahren- 3.1 Internal sorting vs. Binäre Suche- 3.2 Probleme bei der binären Suche 4. Keysorting- 4.1 Funktionsweise + Vorteile- 4.2 Index files- 4.3 Pinned records 5. Literatur

Überblick

Page 3: Organizing  Files  for  Performance

Was ist Datenkompression? Und wofür wird es verwendet?

Datenkompression wird verwendet um Dateien zu verkleinern, welche dann weniger Speicherplatz benötigen. Eine Kompression kann auf Bilder, Texte und viele weitere Formate angewendet werden.

Komprimierte Dateien haben außerdem eine schnellere Verarbeitungszeit, so dass das Thema Datenkompression besonders in der Zukunft immer lukrativer wird.

1.1 Datenkompression

Page 4: Organizing  Files  for  Performance

Reversible Kompression: Verlustfrei Kompression; Dateiinformationen

bleiben vollständig erhalten redundancy reduction

Irreversible Kompression: Kompression bei der Informationen innerhalb der

Datei verloren gehen. Oftmals sind dies belanglose Informationen, dennoch kann kein Original mehr daraus gebildet werden. Dieser Art von Kompression wird beispielsweise bei der Kodierung von Sprachmaterial (voice coding) benutzt.

1.2 Datenkompression

Page 5: Organizing  Files  for  Performance

Run-length encoding (Lauflängenkodierung):

(Abb 1:http://www.pagus.de/seminar/skript/bmpcomp.html)

Zusammenfassung gleicher aufeinander folgender Farbwerte. Die Kodierung innerhalb einer Zeile erfolgt von rechts nach links.

Funktioniert am besten bei homogenen Daten

1.3 Reversible Kompressionen

Page 6: Organizing  Files  for  Performance

Huffman code (Statistische Kompression):Kompression über BinärbaumZiel: Häufig genutzte Symbole bekommen eine kurze

Codierung, seltener genutzte Symbole erhalten eine längere Codierung.

(Abb. 2 http://www.itwissen.info/definition/lexikon/Huffman-Codierung-Huffman-encoding.html)

1.4 Reversible Kompressionen

Page 7: Organizing  Files  for  Performance

Irreversible Kompression = Verlustbehaftete Kompression, bei der Daten innerhalb einer Datei verloren gehen.

Irreversible Datenkompression ist weniger verbreitet als die reversible Kompression, wird aber unter anderem genutzt, um Sprachmaterial zu komprimieren (voice coding). Wenn eine Datei eine irreversible Kompression durchläuft, ist es möglich dass nur überflüssige, oder irrelevante Informationen verloren gehen. Ein Original kann aus der neu gewonnen Datei allerdings nicht mehr hergestellt werden. Die gelöschten Informationen sind nicht wieder herstellbar.

1.5 Irreversible Kompressionen

Page 8: Organizing  Files  for  Performance

2.1Einstieg: Wie kann man Dateien auf einem PC ökonomisch organisieren? Record deletion, record addition & record updatingBsp.: Auf dem PC werden ständig Daten gespeichert, gelöscht oder

ergänzt. Wie kann man die Informationen bestmöglich koordinieren? Linked lists, avail lists etc. Zieleiner Datenorganisation: neu gewonnener Speicherplatz durch

bspw. gelöschte Dateien sollen schnellstmöglich wieder genutzt werden können.

storage compaction = Verfahren bei dem Speicherplatz für Dateien gesucht wird, in dem man leere Stellen innerhalb von Datei aufsucht und belegt.

Datenorganisation anwendbar auf: Fixed-length records = Dateien welche in gleich großen Stacks

gespeichert werden Variable-length records = Dateien mit unterschiedlicher Größe (Bsp.

Morsezeichenkodierung)

2. Regenerierung von Speicherplatz & Datenorganisation

Page 9: Organizing  Files  for  Performance

Fixed-length records bestehen aus gleich großen Einheiten.

Für eine erfolgreiches record deletion und schnellstmögliche Wiederverwendung von Speicherplatz sind zwei Punkte bedeutsam:

1.) Gelöschte Dateien müssen markiert werden2.) Man braucht eine Möglichkeit, dieses Dateien

zu finden, damit man den neu gewonnenen Speicherplatz direkt wiederverwenden kann.

Nachteil: das Verfahren der storage compaction erfolgt sequentiell. Die Datei wird Schritt für Schritt auf leere Plätze durchsucht. Resultat: langsamer Prozess

2.2 Record Deletion – Fixed-Length Records

Page 10: Organizing  Files  for  Performance

Beispiel für die Markierung einer gelöschten Information:

2.2 Record Deletion – Fixed-Length Records

Page 11: Organizing  Files  for  Performance

Lösungsansatz: Man muss wissen ob in einem Ordner gelöschte Dateien vorhanden sind, und wenn ja, die Möglichkeit bekommen direkt auf diese zugreifen zu können.

Linked Lists

(Abb. 4 Linked list mit head pointer und Endpunkt)

2.2 Record Deletion – Fixed-Length records

Page 12: Organizing  Files  for  Performance

Wenn eine linked list gelöschte Dateien (available space) enthält, wird sie umbenannt zu: avail list

Solche avail lists bestehen aus gleich großen stacks (Ausnahme: variable-length records)

(Abb. 5 Hinzufügen einer RRN in eine Liste)

pushed to stack: Hinzukommende Informationen die am Anfang der avail list zugeführt werden

popping to stack: Wegnehmen des neuen Eintrages: 3RRN.

2.2 Record Deletion – Fixed-Length Records

Page 13: Organizing  Files  for  Performance

Hinzufügen von neuen Informationen in eine avail list:

Liste kann mit neuen Informationen gefüllt werden, ohne dass sich die Größe der Liste verändert. Wenn die Liste voll (bzw. die avail list leer ist), wird ein neuer Eintrag der Liste hinzugefügt.

2.2 RecordDeletion – Fixed-Length Records

Page 14: Organizing  Files  for  Performance

Gleiches Funktionsweise wie bei fixed-length records, jedoch mit einigen komplexen Problemen.

Die Abspeicherung der Daten in einer avail list mit unterschiedlich großen Einheiten wird ermöglicht, indem man die Größe der Einheiten vorab im Bytecode notiert.

2.3 Record Deletion – Variable-Length Records

Page 15: Organizing  Files  for  Performance

Fragmente & fragmentierter Speicher: Wenn Fragmente nicht direkt aneinander liegen, sondern Lücken haben von freien Speicherplätzen, spricht man fragmentierten Speicher. Manche Fragmente bleiben immer ungenutzt weil sie nicht groß genug für andere Dateien sind.

Interne Fragmentierung: Verteilung von Daten auf Speicherblöcke (Stacks) welche nicht vollkommend belegt sind; daraus resultiert eine ineffiziente Speicherverwaltung

Externe Fragmentierung: Aneinanderreihung von Fragmenten; diese Fragmente können belegt sein oder freien Speicherplatz aufweisen. (Siehe auch: fragmentierter Speicher)

Lösung: DefragmentierungLösung: placement strategies

2.4 Probleme der Datenorganisation

Page 16: Organizing  Files  for  Performance

2.5 Defragmentierung:

Neuanordnung von fragmentierten Datenblöcken

Page 17: Organizing  Files  for  Performance

First fit Strategie:Wenn ein Speicherfragment groß genug ist, soll dieses auch

direkt genutzt werden! Best fit Strategie:Neue Information wird in ein Fragment geladen das gerade

noch groß genug ist, und den Speicher fast völlig belegt (oft bei variable-length records und interner Fragmentierung); so dass der Speicher komplett ausgenutzt wird.

Worst fit Strategie:In einer avail list wird der größte freie Platz gewählt, egal

wie klein die eigentliche neue Datei ist. Ziel: der übrig gebliebene Speicherplatz soll so groß wie möglich sein, um die externer Fragmentierung zu mindern.

2.5 Placement Strategien:

Page 18: Organizing  Files  for  Performance

Sequentielle Suche: Einfachster Suchalgorithmus; Man geht die Liste von eine Menge n

Einträgen nach und nach durch und vergleicht sie mit dem gesuchten Element.

Nachteil: sehr lange Suchzeiten

Internal Sort: Eine Sortierung von Daten erfolgt direkt im memory ohne unnötiges Hin und Her switschen von verschiedenen Dateien.

Binäre Suche:Schnellerer Suchalgorithmus als die sequentielle Suche O(log₂n) Versuche um Datei zu findenBsp.: Lexikon Nachteil: Funktioniert nur bei sortierten Listen; bei unsortierten

Listen muss Sortierungsalgorithmus gefunden werden

3. Sucheverfahren

Page 19: Organizing  Files  for  Performance

Problem: Eine binäre Suche kann nur auf geordnete Listen angewendet werden. Aber ein memory sort kann nur bei relativ kleinen Dateien vorgenommen werden. Für größere Dateien muss eine anderer Sortierungsalgorithmus gefunden werden.

Lösung: Keysort Verfahren!

3.2 Problem der binären Suche

Page 20: Organizing  Files  for  Performance

Auch: tag sort genanntFunktionsweise: Daten bekommen keys zugeweisen. Diese

keys werden genutzt um die Dateien zu sortieren, damit man bspw. eine binäre Suche anwenden kann. Es findet nur eine Sortierung der keys und nicht der ganzen Datei statt.

Aus der Anzahl der keys wird eine neue Datei erzeugt, welche eine geordnete Liste dieser keys herbergt.

Keynodes= Daten die in Arrays gespeichert, und deren keys verwendet werden

Vorteil: Größere Dateien können eingelesen und sortiert werden. Zudem wird weniger Arbeitsplatz verbraucht wenn die Sortierung lediglich durch keys geschieht.

Nachteil: Durch das Erzeugen einer neuen Datei, entsteht das Problem, dass man die Verbindungen zwischen den Dateien suchen muss.

4. Keysorting

Page 21: Organizing  Files  for  Performance
Page 22: Organizing  Files  for  Performance

Beim keysorting wird lediglich eine geordnete Liste der keynotes[] erstellt. Eine Sortierte Liste der kompletten Dateien erfolgt nicht.

Es wird also eine index file erstellt, in welcher die Verlinkungen zu den original Dateien erfolgt.

4.2 Keysort – Index Files

Page 23: Organizing  Files  for  Performance

Index file:

4.2 Keysorting – Index Files

Page 24: Organizing  Files  for  Performance

Pinned records = davon spricht man, wenn Querverweise zwischen Dateien vorhanden sind, so dass man den physikalischen Ort der gegebenen Datei nicht verändern darf, da sonst die Referenz der beiden jeweiligen Datei zerstört werden.

Dangling Pointers = Dateien bei denen die Referenzen gelöscht wurden, indem sie bspw. verschoben wurden.

Durch die Nutzung von pinned records wird die Sortierung von Dateien erheblich erschwert, oder sogar komplett unmöglich.

4.3 Keysorting – Pinned records

Page 25: Organizing  Files  for  Performance

Michael J. Folk, Bill Zoellick, Greg Riccardi: File Structures, 1998. Chapter 6, p. 201-246

5. Literatur:

Page 26: Organizing  Files  for  Performance

Vielen Dank für die Aufmerksamkeit!