Philosophien zur Vermeidung von Deadlock's

Ich hoffe, dass mir jemand dabei helfen kann. Folgende Aufgabe ist gestellt:
An einem runden Tisch sitzen 5 Philosophen. Jeder Philosoph hat einen Teller Spaghetti vor sich. Zwischen 2 Tellern ist eine einzige Gabel vorhanden. Möchte der Philosoph nun essen, so muss er beide Gabeln (Links und rechts von seinem Teller) besitzen. Das Leben des Philosophen besteht aus den Tätigkeiten Denken, Hunger bekommen und Essen. Wird der Philosoph hungrig, so probiert er beide Gabeln (Gabelpaar) zu bekommen. Ist er erfolgreich, so beginnt er zu essen. Nach einer zufälligen Zeit ist er fertig mit Essen und gibt das Gabelpaar wieder ab. Anschliessend beginnt er zu denken, bis er wieder hungrig wird.

Gefragt ist die Vermeidung von Deadlock’s (2 oder mehr Philosophen behindern sich beim Essen).

Hallo,
das ist eine Klassiker. Google nach „Philosophenproblem“ und Du wirst (reichhaltig) fündig.

Gruss
Enno

Hallo!

Solch ein Problem lässt sich recht gut mit Hilfe eines Petri-Netzes
modellieren. Das ist leider etwas zu komplex, um es hier auf die schnelle zu
erklären. Hier findest du allerdings alles Wissenswerte zu Petri-Netzen:
http://www.daimi.au.dk/PetriNets/introductions/

Und hier gibt’s ein freies Java-Tool zur Simulation solcher Netze:
http://petri-net.sourceforge.net/

Gruß
Tobias