In Dijkstras Artikel "Humble Programmer" erwähnt er, dass er einigen Freiwilligen ein Problem zur Lösung gab:
„Ich habe ein kleines Programmier-Experiment mit wirklich erfahrenen Freiwilligen durchgeführt, aber es ist etwas völlig Unbeabsichtigtes und Unerwartetes aufgetaucht. Keiner meiner Freiwilligen fand die offensichtliche und eleganteste Lösung. Bei näherer Betrachtung stellte sich heraus, dass dies eine gemeinsame Quelle hatte: Ihr Begriff der Wiederholung war so eng mit der Idee einer zu verstärkenden Regelgröße verbunden, dass sie mental daran gehindert wurden, das Offensichtliche zu sehen. Ihre Lösungen waren weniger effizient, unnötig schwer zu verstehen und es dauerte sehr lange, bis sie gefunden wurden. “
Was war das Problem, das Dijkstra den Freiwilligen stellte? Was waren die Lösungen?
quelle
Antworten:
Das "Dining Philosophen Problem" war das präsentierte Problem.
Dies hat seine Wurzeln in gleichzeitigen Systemen und ist eine typische universitäre Frage, die bei der Diskussion der Nebenläufigkeit gestellt wird.
Ich glaube, dass 4 oder 5 "offizielle" Algorithmen entwickelt wurden, um das Problem zu lösen, aber eine schnelle Suche auf Google nach "Dining Philosophen Problem" wird Ihnen eine Vielzahl von Ergebnissen bringen.
Weitere Informationen zu diesem Problem von Standford U finden Sie unter: http://academicearth.org/lectures/dining-philosopher-problem
Der Wikipedia-Artikel befindet sich unter: http://en.wikipedia.org/wiki/Dining_philosophers_problem
Eine Lösung von MSDN Magizine finden Sie unter: http://msdn.microsoft.com/en-us/magazine/dd882512.aspx
Wenn Sie die Originalversion des Papiers in den Fußnoten auf Seite 866 lesen , heißt es: "Proceedings of the IFIP Congress 1965, 213-217."
Das Problem bei Parallelität und gemeinsam genutzten Ressourcen ist das "Dining Philosophers Problem". :-)
Ich hoffe, das hilft.
quelle