Aufgabe 3: Schleusensynchronisation für OO-Stubs
Lernziel
- Schutz kritischer Abschnitte mit Hilfe von Schleusen
Aufgabenbeschreibung
Die Synchronisation der Aktivitäten innerhalb von OO-Stubs soll
auf die Verwendung einer Schleuse umgestellt werden.
Hierzu müssen die Klassen Keyboard, Panic und Gate angepasst bzw. erweitert werden. Die Klassen
Locker,
Guard,
Secure müssen neu erstellt werden.
Außerdem soll ein globales Guard Objekt guard
angelegt werden, mit dessen Hilfe alle kritischen Abschnitte geschützt werden sollen.
Implementierungshinweise
Da die Verwendung von Schleusen den Schutz kritischer Abschnitte mit
Hilfe von CPU::disable_int()
und
CPU::enable_int()
weitgehend überflüssig macht,
sollten zunächst einmal wieder alle entsprechenden Aufrufe
entfernt werden.
Vorgaben
Zur Erstellung der Epilog-Warteschlange werden die Hilfsklassen Queue und Chain vorgegeben.