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.
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