Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Fedde Hemler Geändert vor über 10 Jahren
1
DbjFileManager Paul Fruntzek Michael Stanek
2
Überblick Unterste Ebene im Schichtenmodell Schnittstelle zum BS (Low-Level) Aufgabenbereich: Persistente Speicherung von Daten Benutzung durch BufferManager, sonst keine weiteren Komponenten Übergabe von Blöcken
3
Schnittstellen Grundfunktionen: –CREATE –READ –WRITE –DROP Erweiterte Funktionen: –OPEN –CLOSE
4
Schnittstellenbeschreibung CREATE –Erzeugt neue Datei –Filename == SegmentID (!= 0) DROP –Löschen einer existierenden Datei –Datei darf nicht geöffnet sein
5
Instanzisolation Instanz B dropt Segment 33 Instanz A liest Segment 33 Filestreams leisten diese Isolation
6
Schnittstellenbeschreibung READ –Liest Block aus Datei aus (wahlfrei) –Immer nur ein Block WRITE –Wahlfreies Schreiben eines Blocks in Datei –Einfügen von Leerblöcken (falls nötig) Arbeiten mit Binärdaten
7
Datenstruktur Problem: –meistens mehrere Dateien gleichzeitig geöffnet pro Instanz –OPEN und CLOSE sind teuere File-Operationen –Isolation der unterschiedlichen Instanzen des FileManagers Lösung: –Verwaltung der geöffneten Dateien in Datenstruktur –Verwendung von FileStreams
8
Verwaltung Aufbau: struct Verwaltung { SegmentId segment; void *handle; DbjFileManager::FileMode mode; }; Liste = new DbjFileManager::Verwaltung[ListSize];
9
Verwaltung Liste ist Instanzvariable und auf 2000 Einträge begrenzt Interne Zusatzfunktionen –void ADD_Verwaltung –bool EXISTS_Verwaltung
10
Verwaltung OPEN –Öffnet vorhandene Datei –darf noch nicht lokal geöffnet sein (EXISTS_Verwaltung) –Eintrag ans Ende der Verwaltungsliste (ADD_Verwaltung)
11
CLOSE –Schließen der Datei –Austragen aus Verwaltungsliste Problem: –ständiges OPEN und CLOSE lässt Fragmente in Liste entstehen
12
Verwaltung Lösung: –Eintrag wird aus Liste entfernt –Letztes Element wird an diese Stelle geschrieben
13
?
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.