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.

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.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!