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