05.08.2013 Aufrufe

Diplomarbeit - Operating Systems Group - Technische Universität ...

Diplomarbeit - Operating Systems Group - Technische Universität ...

Diplomarbeit - Operating Systems Group - Technische Universität ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

4.4. FESTPLATTENVERWALTUNG 41<br />

Für das Dateisystem wurde daher eine andere Darstellungsart gewählt. Für jede Blockgröße wird eine<br />

Bitmap mit je einem Bit pro verfügbaren Block verwaltet. Die Bitmap für die maximale Blockgröße enthält<br />

damit ein Bit, die der Basisblockgröße die maximale Anzahl an Bits. Ein gesetztes Bit in der Bitmap einer<br />

Blockgröße bedeutet, daß der entsprechende Block dieser Größe verfügbar ist. Da kleinere Blöcke durch<br />

die Aufteilung größerer Blöcke entstehen, bezieht sich ein Bit in der Bitmap einer Blockgröße auch auf die<br />

Blöcke kleinerer Blockgrößen, die durch eine Teilung dieses Blocks entstehen. Ist ein Block als verfügbar<br />

gekennzeichnet, sind die zu diesem Block gehörenden Blöcke kleinerer Größen zunächst nicht verfügbar<br />

(die Bits in den entsprechenden Bitmaps sind nicht gesetzt), erst durch eine Teilung des größeren Blocks<br />

können die kleineren verfügbar gemacht werden (siehe Abb. 4.7). Durch diesen Umstand werden für die<br />

Verwaltung eines Blocks der Basisblockgröße effektiv zwei Bits verwendet.<br />

Ebene Bitmap<br />

0<br />

1<br />

0<br />

3<br />

2<br />

1<br />

0<br />

0<br />

1 0<br />

0 0 0 1<br />

0 0 0 0 1 0 0 0<br />

belegter Datenblock (Bit nicht gesetzt)<br />

verfügbarer Datenblock (Bit gesetzt)<br />

nicht belegter Datenblock innerhalb eines größeren freien Blocks<br />

Abbildung 4.7: Implementierung des Buddy-Algorithmus mittels<br />

Bitmap<br />

Der für die Speicherung der Bitmaps benötigte Speicherplatz ist konstant, er wird durch die Größe der<br />

Partition bestimmt. Die Bitmap einer 2 GByte Partition bei einer minimalen Blockgröße von 4 KByte ist<br />

128 KByte groß. Für größere Dateisysteme können die Bitmaps also durchaus einige MByte groß sein, so<br />

daß diese nicht vollständig permanent im Hauptspeicher gehalten werden können, sie müssen bei Bedarf<br />

von Festplatte geladen werden. Um dies transparent zu gestalten, verwendet das Dateisystem einen Pager.<br />

Die Bitmaps werden in den Adreßraum des Dateisystems eingeblendet. Bei Bedarf lädt der Pager einen<br />

Bitmapblock an die entsprechende Adresse, dazu werden eine feste Anzahl an Speicherseiten verwendet. Ist<br />

keine freie Speicherseite verfügbar, wird ein anderer Bitmapblock auf die Festplatte zurückgeschrieben und<br />

diese Speicherseite verwendet 4 . Um zu vermeiden, daß durch den Zugriff auf eine benachbarte Blockebene<br />

beim Aufteilen oder Zusammenfassen eines Blocks auch auf einen anderen Bitmapblock zugegriffen wird,<br />

werden die Bitmaps durch das in Abbildung 4.8 dargestellte Schema auf die Festplatten-Blöcke verteilt.<br />

Durch die Verwendung von 4 KByte Festplatten-Blöcken für die Speicherung der Bitmaps können bei<br />

einer minimalen Blockgröße von 4 KByte durch einen Bitmapblock 64 MByte Festplattenplatz verwaltet<br />

werden, durch die in Abbildung 4.8 dargestellte zweistufige Hierarchie 2 TByte.<br />

Für die Synchronisation der in den Speicher geladenen Bitmapblöcke mit den Blöcken auf den Festplatten<br />

wird ein separater Synchronisations-Thread verwendet, der in regelmäßigen Abständen alle Bitmaps auf<br />

die Festplatten zurückschreibt.<br />

4 Für die Auswahl der zu verdrängenden Speicherseite wird im Moment kein spezieller Algorithmus verwendet. Die zur Verfügung<br />

stehenden Speicherseiten werden durch eine Ringliste verwaltet und entsprechend der Reihe nach verwendet.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!