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 Semaphore

Klasse Semaphore

Einordnung in die Gesamtstruktur

Modul
meeting
Basisklassen
Waitingroom
abgeleitete Klassen
Guarded_Semaphore
Erstellungszeitpunkt
Aufgabe 6
Dateien
semaphore.h und semaphore.cc

Beschreibung

Die Klasse Semaphore implementiert das Synchronisationskonzept des zählenden Semaphors. Die benötigte Warteliste erbt sie dabei von ihrer Basisklasse Waitingroom.

öffentliche Methoden

Semaphore (int c)
Der Konstruktor initialisiert den Semaphorzähler mit dem angegebenen Wert c
void p ()
Warteoperation: Sofern der Semaphorzähler größer als Null ist, wird er nur um eins erniedrigt. Anderenfalls wird der aktuell laufende Prozess (ein Customer Objekt) an die Warteliste angefügt und blockiert.
void v ()
Freigabeoperation: Wenn auf der Warteliste mindestens ein Customer eingetragen ist, wird der erste davon aufgeweckt. Anderenfalls wird der Semaphorzähler um eins erhöht.
void wait ()
Diese Methode ist nur ein anderer Name für die Methode p ()
void signal ()
Diese Methode ist nur ein anderer Name für die Methode v ()

Hinweis

Damit der Aufruf von wait () und signal () nicht mehr kostet als von p () und v () sollten diese beiden Methoden inline definiert werden.
  Impressum Stand: 2008-06-28 21:48   AG, WH