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