Aufgabenblatt 12  
Ausgabetermin: 19.1.01
Abgabetermin: Montag d. 29.1.01 bis 24 Uhr per Email an die Übungsgruppenleiter 
Motivation: Begleitende Übungen zu den Vorlesungsthemen "Prozeßkommunikation" und "Echtzeitverarbeitung"
Aufgabe 1: Zehn Klienten übergeben einem Server zu zufälligen Zeitpunkten Aufträge zur Bearbeitung unter Echtzeitbedingungen. Jeder Auftrag enthält Angaben zu seiner erforderlichen Laufzeit und zu der maximalen Antwortzeit nach Auftragsvergabe. Der Server soll die Aufträge optimal abarbeiten, d.h. bei möglichst wenigen Aufträgen die Echtzeitbedingung verletzen.
Implementieren Sie das Client-Server-System als Java-Programm mit den Klienten als nebenläufige Threads. In Szenario S1 vergeben 
- 6 Klienten Aufträge vom Typ A, 
- 1 Klient Aufträge vom Typ B und 
- 3 Klienten Aufträge vom Typ C 
entsprechend der untenstehenden Tabelle. Für Szenario S2 sind die entsprechenden Zahlen 1, 6, und 3. Nach Ausführung eines Auftrags soll jeder Klient eine Pause machen, deren Länge jeweils durch eine Zufallszahl zwischen 0 und 500 bestimmt wird.

 Typ   Laufzeit    Antwortzeit    Anzahl in S1      Anzahl in S2
   A              10                70                    6                   1
   B               50              220                    1                   6
   C               30              160                    3                   3

Der Server umfaßt einen Scheduler, der Aufträge annimmt und die Abarbeitungsreihenfolge bestimmt. Die Ausführung der Aufträge soll durch einen als nebenläufigen Thread realisierten "Prozessor" erfolgen, der genau einen Auftrag zur Zeit bearbeiten kann und dafür die vorgesehene Laufzeit braucht (realisiert durch SLEEP).
a) Implementieren Sie das Client-Server-System zunächst mit einer First-come-first-serve (FCFS) Scheduler-Strategie und bestimmen Sie für beide Szenarien, welcher Anteil der Aufträge durchschnittlich unter Wahrung der Echtzeitbedingungen bearbeitet werden kann.
Geschätzter Zeitbedarf: 2 h
4 Punkte
b) Implementieren Sie eine verbesserte Scheduler-Strategie (s. Vorlesung) und bestimmen Sie wiederum für beide Szenarien den Anteil der unter Echtzeitbedingungen bearbeiteten Aufträge.
Geschätzter Zeitbedarf: 1 h 
2 Punkte

Aufgabe 2: a) Zeichnen Sie ein S/T-Netz für drei speisende Philosophen (s. Vorlesung), bei dem jeder Philosoph die zum Essen erforderlichen zwei Stäbchen nebenläufig (d.h. nicht unbedingt gleichzeitig) aufnehmen kann.
Geschätzter Zeitbedarf: 0,5 h
1 Punkt
b) Modellieren Sie das S/T-Netz mit Ihrem (einem) S/T-Netz-Baukasten aus Aufgabenblatt 11. Implementieren Sie ein Verfahren zur Verklemmungsanalyse und wenden Sie es auf das vorliegende S/T-Netz an.
Geschätzter Zeitbedarf: 1,5 h 
3 Punkte
Abzugebende
Dokumente
Aufgabe 1: Implementierte und dokumentierte Testumgebung sowie Protokolle von Probeläufen.
Aufgabe 2a: Zeichnung des S/T-Netzes
2b: Informelle Beschreibung des Verfahrens zur Verklemmungsanalyse sowie implementierte und dokumentierte Testumgebung dazu.

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