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.
40 KAPITEL 4. IMPLEMENTIERUNG<br />
Super-<br />
Block<br />
Bitmap-<br />
Blöcke<br />
Datenblöcke<br />
Abbildung 4.5: Aufbau einer Partition<br />
die eindeutige Identifikation der Partition innerhalb des Dateisystems verwendet, sie entspricht im Moment<br />
der SCSI-Device-Nummer der Partition. Letztendlich wird die Partition-Id jedoch unabhängig vom SCSI-<br />
System sein, die Auflösung der Partition-Id in die SCSI-Device-Nummer soll dann erst durch den SCSI-<br />
Treiber erfolgen. Dadurch soll z.B. das Verschieben einer Partition auf eine andere Festplatte auf eine<br />
einfache Art ermöglicht werden. Die neue Zuordnung muß nur im SCSI-Treiber berücksichtigt werden,<br />
alle weiter oben liegenden Verwaltungsstrukturen bleiben von der Änderung unberührt.<br />
struct rtfs_superblock<br />
{<br />
unsigned partition_id:16; /* partition id */<br />
unsigned buddy_om:16; /* buddy basis */<br />
unsigned b_basis:16; /* smallest blocksize */<br />
unsigned b_bitmap:16; /* bitmap blocksize */<br />
dword_t data_blocks; /* number of data blocks */<br />
dword_t bitmap_blocks; /* number of bitmap blocks */<br />
rtfs_blockid_t root; /* location of the root directory */<br />
dword_t free_count[NO_BLOCKSIZES];<br />
/* counter for free blocks per size */<br />
byte_t reserved[492 - 4 * NO_BLOCKSIZES];<br />
word_t partitions[256]; /* other rtfs partitions */<br />
};<br />
Abbildung 4.6: Superblock<br />
Die nächste Fragestellung lautet, wie die Verwaltungsstrukturen des Buddy-Algorithmus gespeichert werden.<br />
Die Standardimplementierung des Buddy-Algorithmus für die Hauptspeicherverwaltung besteht in der<br />
Verwendung je einer Freispeicherliste pro verfügbarer Blockgröße. Diese Struktur besitzt für den Einsatz<br />
für die Verwaltung des Festplattenplatzes zwei Nachteile:<br />
Ein<br />
Das<br />
<br />
<br />
eher kleineres Problem ist, daß die Listen keine konstante Länge haben.<br />
Hauptproblem besteht darin, daß aufgrund des Zusammenfassens benachbarter Datenblöcke<br />
beim Freigeben auch Lücken innerhalb der Listen entstehen. Für eine dynamisch erzeugte Liste im<br />
Hauptspeicher ist das kein Problem, für eine Liste, die statisch durch die Verwendung von Datenblöcken<br />
auf der Festplatte realisiert ist, bedeutet das jedoch ein Umkopieren aller Daten hinter dem<br />
freigegebenen Listenelement. Die Lösungsvariante, die Freispeicherlisten während der Bearbeitung<br />
im Hauptspeicher zu halten und nur gelegentlich auf die Festplatte zu schreiben, ist aufgrund des<br />
hohen Speicherbedarfs nicht realisierbar.