Diplomarbeit - Operating Systems Group - Technische Universität ...
Diplomarbeit - Operating Systems Group - Technische Universität ...
Diplomarbeit - Operating Systems Group - Technische Universität ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
36 KAPITEL 4. IMPLEMENTIERUNG<br />
Kontinuierliche<br />
Nichtkontinuierliche<br />
Pufferplanung<br />
Lesen der<br />
Blocklisten<br />
AuftragsAuftragsplanung annahme<br />
Auftragsgenerierung<br />
SCSI-Treiber<br />
Auftragsbehandlung<br />
kontinuierliche nicht-kontinuierliche<br />
Echtzeitströme Echtzeitströme<br />
Auftragsbehandlung<br />
Nicht-Echtzeitströme<br />
Bitmap-<br />
Pager<br />
Synchronisation<br />
Datei- und<br />
Blockverwaltung<br />
Dateisystem<br />
Abbildung 4.1: Threadstruktur des Dateisystems<br />
Echtzeitdaten<br />
Für die Bearbeitung eines kontinuierlichen Datenstroms wendet sich eine Anwendung zunächst an<br />
die Admission Control mit einer Anforderung zum Öffnen der entsprechenden Datei. Als Argument<br />
werden dabei die benötigte Datenrate und Verweildauer der Puffer übergeben. Bei erfolgreicher Admission<br />
wird der Auftrag an den Thread zur Auftragsbehandlung weitergegeben. Für die Erzeugung<br />
der SCSI-Aufträge werden in dem im Abschnitt 3.7 beschriebenen Plan die entsprechenden Felder<br />
belegt und es wird die Ringliste der Übertragungspuffer erzeugt. Die Blocklisten der einzelnen Dateien<br />
können nicht permanent im Speicher gehalten werden, durch einen separaten Thread werden<br />
die im Moment benötigten Ausschnitte der Blocklisten gelesen. Die Übertragung der Daten erfolgt<br />
durch das Einblenden der Puffer in den Adreßraum der Anwendung.<br />
Echtzeitdaten<br />
Die Bearbeitung eines nicht-kontinuierlichen Datenstroms erfolgt durch einen separaten Thread pro<br />
Datei. Die Anwendung wendet sich ebenfalls zuerst an die Admission Control. Diese startet bei<br />
erfolgreicher Admission einen neuen Thread zur Behandlung der Aufträge für diese Datei. Die Anwendung<br />
kommuniziert dann mit diesem Thread für das Lesen oder Schreiben der Daten.<br />
Nicht-Echtzeitdaten<br />
Alle Aufträge für Nicht-Echtzeitdateien werden durch einen einzigen Thread bearbeitet, der beim<br />
Hochfahren des <strong>Systems</strong> gestartet wird.<br />
Zeitsteuerung<br />
Die Bearbeitung der kontinuierlichen Datenströme erfordert eine periodische Abarbeitung der Threads<br />
zur SCSI- und Pufferplanung sowie des Threads zum Lesen der Blocklistenabschnitte. Ziel des DROPS-<br />
Projekts ist es, derartige periodische Threads durch ein geeignetes CPU-Scheduling zu unterstützen [Wol97].<br />
Bedingung dafür ist, daß neben der Periodenlänge auch die maximale Bearbeitungsdauer innerhalb einer