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.

Kapitel 4<br />

Implementierung<br />

Im vorangegangenen Kapitel wurden die Konzepte vorgestellt, die das Dateisystem zur Verwaltung der Daten<br />

verwendet. Daran anschließend soll jetzt auf einige Aspekte der Implementierung eingegangen werden.<br />

Als Grundlage für die Implementierung dient der Mikrokern L4 [Lie96] und der von Frank Mehnert portierte<br />

Treiber für die NCR53c8xx SCSI-Hostadapter Familie [Meh98].<br />

4.1 Threadstruktur<br />

Durch die Verwendung von Threads kann der Eigenschaft vieler Anwendungen Rechnung getragen werden,<br />

daß diese mehrere nebenläufige Abarbeitungspfade besitzen. Diese Abarbeitungspfade können dann<br />

auch auf Programmebene entkoppelt werden, was zu einer geringeren Beeinflussung dieser Pfade untereinander<br />

führt.<br />

Da man auch die Bearbeitung eines einzelnen Datenstroms durch das Dateisystem als separaten Abarbeitungspfad<br />

ansehen kann, wäre als Struktur für das Dateisystem die Verwendung eines Threads für jeden<br />

Datenstrom denkbar, um eine Beeinflussung der Datenströme untereinander zu vermeiden. Gegen eine<br />

derartige Struktur spricht allerdings der Umstand, daß L4 nur 128 Threads innerhalb eines Adreßraums<br />

unterstützt. Für einige Anwendungen, etwa einen Video-Server, ist das bei der verwendeten Hardware ausreichend,<br />

für andere Anwendungen stellt es jedoch eine Limitation dar, da die Hardware dann theoretisch<br />

mehr Datenströme liefern könnte, als das Dateisystem verarbeiten kann, z.B. bei einer Musik-Datenbank.<br />

Die in Abbildung 4.1 dargestellte Threadstruktur nutzt die Eigenschaft des Dateisystementwurfs aus, daß<br />

für kontinuierliche Datenströme das Dateisystem von sich aus die Auftragsgenerierung und Datenübertragung<br />

steuert. Diese beiden Aufgaben werden in getrennten Threads abgearbeitet. Der Thread zur Auftragsplanung<br />

erzeugt anhand des in Abschnitt 3.7 vorgestellten Plans die SCSI-Aufträge, der Thread der<br />

Pufferplanung ist für die Übertragung der Puffer an die Anwendung entsprechend der festgelegten Zeitintervalle<br />

verantwortlich.<br />

Da die Aufträge nicht-kontinuierlicher Datenströme für das Dateisystem nicht vorhersagbar sind, werden<br />

diese durch getrennte Threads bearbeitet, um ein gegenseitiges Blockieren der Datenströme zu vermeiden.<br />

4.2 Auftragsbearbeitung<br />

Ausgehend von der beschriebenen Threadstruktur erfolgt die Bearbeitung der Aufträge unterschiedlich für<br />

die einzelnen Zugriffsarten, dies ist in Abbildung 4.2 schematisch dargestellt.<br />

35

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!