Benutzer-Werkzeuge

Webseiten-Werkzeuge


parallelism:deadlocks:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
parallelism:deadlocks:start [2025/03/21 07:08] – [Aufgabe 1: Das Philosophenproblem] Martin Pabstparallelism: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 ''sleep''-Anweisungen?
   * c) Ändern Sie das Programm so ab, dass die Bedingung "cyclic waiting" nicht mehr zutrifft und verifizieren Sie, dass damit die Verklemmung nicht mehr auftritt.   * c) Ändern Sie das Programm so ab, dass die Bedingung "cyclic waiting" nicht mehr zutrifft und verifizieren Sie, dass damit die Verklemmung nicht mehr auftritt.
   * d) Ändern Sie das Programm so ab, dass eine andere der Coffman-Bedingungen nicht mehr zutrifft. Erläutern Sie Ihr Vorgehen.   * d) Ändern Sie das Programm so ab, dass eine andere der Coffman-Bedingungen nicht mehr zutrifft. Erläutern Sie Ihr Vorgehen.
Zeile 96: Zeile 96:
       while (true) {       while (true) {
          forkLeft.take(color);          forkLeft.take(color);
-         SystemTools.pause(10); +         sleep(10); 
          forkRight.take(color);          forkRight.take(color);
                    
          println("Philosopher eats", color);          println("Philosopher eats", color);
-         SystemTools.pause(100);   // eat+         sleep(100);   // eat
  
          forkRight.put();          forkRight.put();
Zeile 106: Zeile 106:
                    
          println("Philosopher talks", color);          println("Philosopher talks", color);
-         SystemTools.pause(10);   // talk ;-)+         sleep(10);   // talk ;-)
       }       }
    }    }
Zeile 144: Zeile 144:
  
 </HTML> </HTML>
 +
 +[[.philosophenloesung:start|Lösung]]
parallelism/deadlocks/start.1742540890.txt.gz · Zuletzt geändert: 2025/03/21 07:08 von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki