parallelism:deadlocks:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
parallelism:deadlocks:start [2025/03/20 15:43] – [Aufgabe 1: Das Philosophenproblem] Martin Pabst | parallelism:deadlocks:start [2025/04/08 10:54] (aktuell) – [Aufgabe 1: Das Philosophenproblem] Martin Pabst | ||
---|---|---|---|
Zeile 48: | Zeile 48: | ||
<WRAP center round todo 80%> | <WRAP center round todo 80%> | ||
* a) Erläutern Sie, inwiefern die Coffman-Bedingungen erfüllt sind. | * a) Erläutern Sie, inwiefern die Coffman-Bedingungen erfüllt sind. | ||
- | * b) Starten Sie das untenstehende Programm und untersuchen Sie, ob es zu einer Verklemmung kommt. Welche Rolle spielen die sleep-Anweisungen? | + | * b) Starten Sie das untenstehende Programm und untersuchen Sie, ob es zu einer Verklemmung kommt. Welche Rolle spielen die '' |
* c) Ändern Sie das Programm so ab, dass die Bedingung " | * c) Ändern Sie das Programm so ab, dass die Bedingung " | ||
+ | * d) Ändern Sie das Programm so ab, dass eine andere der Coffman-Bedingungen nicht mehr zutrifft. Erläutern Sie Ihr Vorgehen. | ||
</ | </ | ||
Zeile 80: | Zeile 81: | ||
int color; | int color; | ||
- | int number; | ||
- | | ||
Fork forkLeft; | Fork forkLeft; | ||
Fork forkRight; | Fork forkRight; | ||
| | ||
- | | + | |
circle.rotate(360 / 5.0 * number, 400, 300); | circle.rotate(360 / 5.0 * number, 400, 300); | ||
circle.setFillColor(color); | circle.setFillColor(color); | ||
- | this.number = number; | ||
this.color = color; | this.color = color; | ||
this.forkLeft = forkLeft; | this.forkLeft = forkLeft; | ||
Zeile 98: | Zeile 96: | ||
while (true) { | while (true) { | ||
| | ||
- | SystemTools.pause(10); | + | sleep(10); |
| | ||
+ | |||
| | ||
- | SystemTools.pause(100); | + | sleep(100); |
| | ||
| | ||
+ | |||
| | ||
- | SystemTools.pause(10); // talk ;-) | + | sleep(10); // talk ;-) |
} | } | ||
} | } | ||
Zeile 114: | Zeile 115: | ||
class Fork extends Line { | class Fork extends Line { | ||
- | | + | |
int color = gray; | int color = gray; | ||
- | int number; | ||
| | ||
- | super(500, 300, 650, 300); | + | super(500, 300, 580, 300); |
setBorderColor(color); | setBorderColor(color); | ||
rotate(360 / 10.0 + 360 / 5.0 * number, 400, 300); | rotate(360 / 10.0 + 360 / 5.0 * number, 400, 300); | ||
- | this.number = number; | ||
} | } | ||
Zeile 145: | Zeile 144: | ||
</ | </ | ||
+ | |||
+ | [[.philosophenloesung: |
parallelism/deadlocks/start.1742485392.txt.gz · Zuletzt geändert: 2025/03/20 15:43 von Martin Pabst