Diplomarbeit - Operating Systems Group - Technische Universität ...
Diplomarbeit - Operating Systems Group - Technische Universität ...
Diplomarbeit - Operating Systems Group - Technische Universität ...
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.