Philosophenproblem, habe ich nun einen Deadlock oder nicht? (Was genau meint zyklische Wartebedingung)?

2 Antworten

Konstruieren wir doch mal einen Deadlock: Wir versuchen, dafür zu sorgen, dass jeder Philosoph genau eine Gabel vom Tisch nimmt und dann vergeblich auf die zweite wartet.

In der Grafik deuten die Pfeilfarben an, dass jeder der Philosophen "12" bis "45" die jeweils rechts von ihm liegende Gabel nimmt. Soweit sieht alles gut aus.

Was passiert aber mit Gabel 5? Philosoph "51" braucht zuerst Gabel 1, deshalb bekommt Philosoph "45" Gabel 5 und kann essen. Sobald er satt ist, kann der rechts von ihm sitzende Philosoph essen, bis auch Philosoph "12" satt ist und Philosoph "51" Gabel 1 überlässt.

Die Lösung bringt in eine Situation, in der es ein Gleichgewicht gibt, gezielt eine kleine Störung ein. So wird garantiert, dass ein Patt nicht stabil bleibt, sondern immer in eine bestimmte Richtung kippt und sich so auflöst.

Die Gabel mit der höchsten Nummer (5) hat die niedrigste Priorität, wenn es darum geht, sie zu reservieren. Kann sie reserviert sein, während irgendein Philosoph auf eine andere Gabel wartet?

Von dort aus die Prioritätsliste hinauf.