Friedrich-Alexander-Universität Univis FAU-Logo
Techn. Fakultät Willkommen am Department Informatik FAU-Logo
Logo IMMD
Lehrstuhl für Informatik 4
Betriebssysteme
Department Informatik  >  Informatik 4  >  Lehre  >  WS 2002/03  >  Betriebssysteme

Klasse Guard

Einordnung in die Gesamtstruktur

Modul
guard
Basisklassen
Locker
abgeleitete Klassen
keine
Erstellungszeitpunkt
Aufgabe 3
Dateien
guard.h guard.cc

Beschreibung

Die Klasse Guard dient der Synchronisation zwischen "normalen" Kernaktivitäten (zur Zeit Ausgaben, später Systemaufrufe) und Unterbrechungsbehandlungsroutinen. Dazu besitzt Guard eine Warteschlange (ein Queue Objekt), in die Gate Objekte eingereiht werden können. Das ist immer dann erforderlich, wenn zum Zeitpunkt des Auftretens einer Unterbrechung der kritische Abschnitt gerade besetzt ist, die epilogue() Methode also nicht sofort bearbeitet werden darf. Die angesammelten Epiloge werden behandelt, sobald der kritische Abschnitt wieder freigegeben wird.

öffentliche Methoden

void leave ()
Mit dieser Methode wird der kritische Abschnitt verlassen und die angestauten Epiloge abgearbeitet.
void relay (Gate* item)
Mit dieser Methode kann im Prolog einer Unterbrechungsbehandlung die Ausführung des zugehörigen Epilogs beantragt werden. Ob der Epilog sofort behandelt oder zunächst nur in die Epilogliste eingehängt wird, hängt davon ab, ob der kritische Abschnitt frei oder besetzt ist.

Hinweise

  • Die Epilogqueue stellt eine zentrale Datenstruktur dar, deren Konsistenz geeignet gesichert werden muß.
  • Da Gate Objekte nur einen einzigen Verkettungszeiger besitzen, dürfen sie zu einem Zeitpunkt nur ein einziges Mal in der Epilogliste aufgeführt sein. Wenn also zwei gleichartige Interrupts so schnell aufeinanderfolgen, dass der zugehörige Epilog noch gar nicht behandelt wurde, darf nicht versucht werden, dasselbe Gate Objekt zweimal in die Epilogliste einzutragen. Die Klasse Gate bietet Methoden, dies zu vermerken bzw. zu prüfen.
  • Ein Betriebssystem sollte Unterbrechungen immer nur so kurz wie möglich sperren. Daher sieht das Konzept der Schleuse vor, dass Epiloge durch Prologe unterbrochen werden können. Für OO-Stubs bedeutet das, dass bereits vor der Ausführung des Epilogs einer Unterbrechungsbehandlung Interrupts wieder zugelassen werden sollten.
  Impressum   Datenschutz Stand: 2002-11-20 11:18   OS