Aufgabe 6: Semaphore für OO-Stubs
Lernziel
- Synchronisation mit Hilfe von Semaphoren
Aufgabenbeschreibung
OO-Stubs soll nun um Semaphore erweitert werden.
Mit Hilfe von Semaphoren besteht die Möglichkeit,
Anwendungsprozesse miteinander zu synchronisieren.
Darüberhinaus sollen sie dazu verwendet werden,
Anwendungsprozesse bei der Tastaturabfrage zu blockieren, bis eine
Taste gedrückt wurde.
Hierzu müssen die Klassen Waitingroom, Semaphore, Customer, Organizer, Guarded_Organizer, Guarded_Semaphore und Guarded_Keyboard
implementiert,
die Klasse Keyboard erweitert und
die Klasse Thread angepasst
werden.
Die Klasse Guarded_Scheduler wird
nicht länger benötigt, da
Guarded_Organizer
ihre Aufgabe übernimmt.
Ebenso soll das globale Guarded_Scheduler Objekt scheduler durch ein
globales Guarded_Organizer Objekt organizer
ersetzt werden.
Mit Hilfe von Semaphorvariablen solltet ihr nun verhindern
können, dass sich eure Anwendungsprozesse bei der
Bildschirmausgabe gegenseitig behindern. Erweitert euer Programm nun
auch dahingehend, dass einer der Prozesse Tastaturabfragen
vornimmt (und in irgendeiner sichtbaren Weise darauf reagiert).
Vorgaben
Zu dieser Aufgabe geben wir wieder einmal überhaupt nichts vor.