Filosofenprobleem: verschil tussen versies
Verwijderde inhoud Toegevoegde inhoud
poging de uitleg te verhelderen (ik was het niet eens met het gebruik van de voltooid tegenwoordige tijd) |
Geen bewerkingssamenvatting |
||
Regel 26:
Er zijn technieken om tot een oplossing te komen die een deadlock bewijsbaar voorkomen; Dijkstra heeft het probleem verzonnen om zulke technieken te demonstreren.
Bij zulke oplossingen worden extra observaties en/of handelingen ingevoerd. Essentieel is daarbij dat we met een wezenlijk gedistribueerd systeem te maken: alle observaties en handelingen zijn communicaties tussen de deelnemende partijen.
We kunnen bijvoorbeeld de denkers nummeren en elke denker alleen een vork laten pakken als er geen hoger genummerde denker al een vork vastheeft. Nu is deadlock onmogelijk. (Maar is deze oplossing uitvoerbaar? We hebben nu het probleem veranderd door te eisen dat een filosoof op de een of andere manier kan weten of een hoger genummerde buur al een vork in de andere hand heeft. Die informatie moet dus op de een of andere manier doorgegeven worden. Hoe? Stel dat een filosoof de observatie kan doen of een buur een vork in de andere hand heeft. Dat is niet toereikend: als de filosoof ziet dat dat niet zo is en op basis daarvan beslist om zelf de met die buur gedeelde vork op te pakken, kan intussen die buur de andere vork opnemen.)
Deadlock is echter niet het enige soort situatie dat in het ontwerp moet worden uitgesloten.
|