Aufgabenblatt 10  ALLES GUTE ZUM NEUEN JAHR UND ERFOLGREICHE P2/P3-PRÜFUNG!
Ausgabetermin: 5.1.01
Abgabetermin: Montag d. 15.1.01 bis 24 Uhr per Email an die Übungsgruppenleiter 
Motivation: Begleitende Übungen zum Vorlesungsthema "Nebenläufigkeit"
Aufgabe 1: Zur Implementierung von Prozessen enthält das Package java.lang die Klasse Thread mit der Methode run(). 
a) Implementieren Sie einen Zähler als Thread, der mit den Kommandos start(), stop(), suspend(), resume() und sleep() bedient und mit isAlive() abgefragt werden kann. Der Zähler soll etwa in Hundertstelsekundeneinheiten von 0 bis 1000 zählen und dann wieder bei 0 beginnen (verwenden Sie dazu sleep). Dabei soll er seinen Zählerstand jede Sekunde ausgeben.
Geschätzter Zeitbedarf: 0,5 h
2 Punkte
b) Inszenieren Sie ein Wettrennen mit 3 Läufern, die als Zähler auf der Basis von a) implementiert sind, und einer Uhr, die im Hauptprogramm kontinuierlich in einer Schleife von 0 bis 100000 zählt und dann wieder bei 0 beginnt. Die Läufer sollen loslaufen, sobald die Uhr 1000 erreicht hat (die Läufer müssen dazu die Uhr ablesen, die Uhr kann sie nicht starten). Ihr interner Zählerstand soll beim Start 0 sein. Sie laufen, bis ihr interner Zähler 2000 zeigt. Zu diesem Zeitpunkt lesen sie die Uhr erneut ab, geben Startzeit und Endzeit aus und halten an. Gewonnen hat der Prozeß mit der kleinsten Endzeit. Erklären Sie, weshalb es zu unterschiedlichen Start- und Endzeiten kommt.
Geschätzter Zeitbedarf: 1 h
3 Punkte
Aufgabe 2: Sie haben die Aufgabe, Zugriffe mehrerer Kontobesitzer auf ein
gemeinsames Konto zu synchronisieren. Ihr akademisch orientierter Chef verlangt, daß Sie die Handhabung kritischer
Abschnitte mit den P- und V-Operationen einer Semaphor-Implementation (s. Semaphore.html) durchführen. Implementieren Sie ein Java-Programm, das Schreiben und Lesen von N Besitzern eines gemeinsamen Kontos für 2 Varianten ermöglicht: 
a) 1. Leser/Schreiber-Problem: Nachfolgende Leser dürfen
wartende Schreiber überholen. 
b) 2. Leser/Schreiber-Problem: Nachfolgende Leser müssen auf
Abfertigung des Schreibers warten. 
Simulieren Sie nebenläufige Kontozugriffe für 3 Personen. 
Hinweis: Verwenden Sie P- und V-Operationen, um einen  Zähler für laufende Lesevorgänge zu schützen. 
Geschätzter Zeitbedarf: 2 h
5 Punkte
Abzugebende
Dokumente
Aufgabe 1: Implementierte und dokumentierte Testumgebung sowie Protokolle von Probeläufen. Erklärung zu b)
Aufgabe 2: Implementierte und dokumentierte Testumgebung sowie Protokolle von Probeläufen.

Schicken Sie bitte Ihre Dokumente - ein Exemplar je Übungsteam - 
als ein im Zip-Code komprimiertes Nur-Text-Datei-Attachment 
per Email an Ihren Übungsgruppenbetreuer.