Friedrich-Alexander-Universität UnivisSuche FAU-Logo
Techn. Fakultšt Willkommen am Department Informatik FAU-Logo
Logo I4
Lehrstuhl für Informatik 4
Betriebssysteme
 
  Vorlesung
    - UnivIS-Infos
    - Inhalt
    - Folien
 
  Übungen
    - UnivIS-Infos
    - Inhalt
    - Ergänzendes Material
    - Terminübersicht
    - Aufgaben
       * Umgebung
       * Typische Fehler
       * MPStuBS
       * A 1
       * A 2
       * A 3
       * A 4
       * A 5
       * A 6
 
  Evaluation
Department Informatik  >  Informatik 4  >  Lehre  >  WS 2008/09  >  Betriebssysteme  >  Übungen  >  Aufgaben  >  Aufgabe 6  >  Klasse Guarded_Scheduler

Klasse Guarded_Scheduler

Einordnung in die Gesamtstruktur

Modul
syscall
Basisklassen
Scheduler
abgeleitete Klassen
keine
Erstellungszeitpunkt
Aufgabe 5
unnötig seit
Aufgabe 6
Dateien
guarded_scheduler.h guarded_scheduler.cc

Achtung

Ab Aufgabe 6 werden die Aufgaben der Klasse Guarded_Scheduler durch die Klasse Guarded_Organizer übernommen. Guarded_Scheduler wird also nicht länger benötigt.

Beschreibung

Der Guarded_Scheduler implementiert die Systemaufrufschnittstelle zum Scheduler. Die von ihm angebotenen Methoden werden direkt auf die Methoden der Basisklasse abgebildet, nur dass ihre Ausführung jeweils mit Hilfe eines Objekts der Klasse Secure geschützt wird und dass nicht Entrant, sondern Thread Objekte behandelt werden.

öffentliche Methoden

void ready (Thread& that)
Mit dieser Methode wird der Prozess that beim Scheduler angemeldet.
void exit ()
Hiermit kann sich ein Prozess selbst beenden.
void kill (Thread& that)
Mit dieser Methode kann ein Prozess einen anderen (that) beenden.
void resume ()
Hiermit kann ein Prozesswechsel ausgelöst werden.

Hinweis

Da die Methoden von Guarded_Scheduler die gleichen Namen haben wie die der Basisklasse Scheduler, verdecken sie diese normalerweise. Dies kann verhindert werden, wenn bei dem Aufruf einer Methode der Name der Basisklasse explizit angeführt wird. Beispiel:
   Guarded_Scheduler scheduler;
   Application appl1, appl2;

   scheduler.ready (appl1);                // Methode von Guarded_Scheduler
   scheduler.Scheduler::ready (appl2);     // Methode von Scheduler
  Impressum   Datenschutz Stand: 2008-06-28 21:48   AG, WH