Das Erzeuger/Verbraucher-Problem |
Hinweise zur Benutzung der Demo |
- Hinweis: Falls Sie oben kein Java-Applet sehen, unterstützt Ihr Browser keine Java-Applets mehr.
In diesem Fall gehen Sie bitte wie folgt vor:
- Laden Sie sich die Zip-Datei mit den Demos herunter.
- Entpacken Sie die Datei.
- Nun können Sie das Applet mit dem Kommando appletviewer <html-Datei> ausführen.
- Im linken Teil sind dargestellt:
- Die verwendeten Semaphore mit dem aktuellen Wert des
Semaphor-Zählers. Die Farben bedeuten:
- grün: Semaphor ist frei (Zähler > 0)
- gelb: Semaphor ist belegt, kein wartender Thread (Zähler = 0)
- rot: Semaphor ist belegt, Threads warten (Zähler < 0)
- Der Puffer mit 5 Pufferplätzen. Ein blauer Hintergrund zeigt an, daß der jeweilige Pufferplatz belegt ist.
- Ein Feld zum globalen Einzelschrittbetrieb. Bei jedem
Drücken des 'Einzelschritt'-Knopfes führt ein
rechenbereiter Thread die nächste Codezeile aus.
Über die Combo-Box 'Strategie' kann die Auswahlstrategie festgelegt werden:- Random: zufällig
- RR, Round Robin: die Threads werden reihum ausgewählt; ein Thread, der einen Schritt ausgeführt hat und rechenbereit ist, stellt sich hinten wieder an.
- FIFO: ein Thread wird solange ausgeführt, bis er blockiert. Erst dann kommt der nächste Thread.
- Prio: die Threads erhalten eine Priorität, die von links oben nach rechts unten abnimmt. Es wird immer der rechenbereite Thread mit der höchsten Priorität ausgeführt.
- rev. Prio: die Threads erhalten eine Priorität, die von links oben nach rechts unten zunimmt. Es wird immer der rechenbereite Thread mit der höchsten Priorität ausgeführt.
- Die verwendeten Semaphore mit dem aktuellen Wert des
Semaphor-Zählers. Die Farben bedeuten:
- Im
rechten Teil sind die beteiligten Threads (bzw. Prozesse) mit ihrem
Quellcode dargestellt.
- Die blaugrüne Markierung zeigt die nächste auszuführende Codezeile an.
- Eine rote Markierung bedeutet, daß der Thread in dieser Zeile blockiert ist.
- Zum Zurücksetzen der Demo drücken Sie den 'Reload'-Knopf Ihres Browsers.