Filosofenprobleem: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
geen paradox
StrepuBot (overleg | bijdragen)
k aan weerszijde → aan weerszijden (botverzoek)
Regel 1:
[[AfbeeldingBestand:An illustration of the dining philosophers problem.png|thumb|200px|Illustratie bij het filosofenprobleem]]
In de [[informatica]] is het '''filosofenprobleem''' een aansprekend voorbeeld van de problematiek van [[gedistribueerd programmeren|synchronisatie]].
Het probleem is in [[1965]] door [[Edsger Dijkstra]] voor het eerst gesteld als tentamenvraag; die ging over vijf computers die toegang willen hebben tot vijf tape-drives. De herformulering waarin computers en tape-drives door filosofen en vorken zijn vervangen is kort daarna bedacht door [[Tony Hoare]].
Regel 5:
==Het probleem==
Vijf filosofen zitten aan een ronde tafel om een enorme kom met [[spaghetti]].
Elke filosoof moet zo nu en dan spaghetti eten. (Een filosoof die niet aan het eten is, denkt na.)
 
Er liggen vijf vorken op tafel: een tussen elke twee filosofen.
Regel 13:
Andere handelingen of observaties kunnen de filosofen niet verrichten.
 
Het probleem is nu om de filosofen zodanige instructies te geven (die dus alleen betrekking hebben op het oppakken en weer terugleggen van vorken aan weerszijdeweerszijden) dat er gegarandeerd geen filosoof zal verhongeren.
 
Dit is een voorbeeld van een probleem in het [[gedistribueerd programmeren]].
Regel 21:
Dat lijkt op het eerste gezicht een redelijk plan.
Helaas kan dan de situatie ontstaan dat elke filosoof de linkervork in de linkerhand heeft, en zal dan elke filosoof eeuwig blijven wachten tot de rechtervork vrijkomt.
De situatie is een voorbeeld van [[Deadlock (situatie)|''deadlock'']]: er is geen voortgang in het systeem meer mogelijk. Elke filosoof zal verhongeren.
 
Er zijn technieken om tot een oplossing te komen die een ''deadlock'' bewijsbaar voorkomen; Dijkstra heeft het probleem verzonnen om zulke technieken te demonstreren.