Dans son article "Humble Programmer" , Dijkstra mentionne qu'il a posé un problème à certains volontaires:
«J'ai mené une petite expérience de programmation avec des volontaires très expérimentés, mais quelque chose d'assez inattendu et d'inattendu s'est produit. Aucun de mes volontaires n'a trouvé la solution la plus évidente et la plus élégante. Après une analyse plus approfondie, il s’est avéré que leur origine était commune: leur notion de répétition était si étroitement liée à l’idée d’une variable contrôlée associée à augmenter, qu’ils étaient mentalement empêchés de voir ce qui était évident. Leurs solutions étaient moins efficaces et inutilement difficiles à comprendre, et il leur a fallu très longtemps pour les trouver. ”
Quel était le problème que Dijkstra avait posé aux volontaires? Quelles étaient les solutions?
la source
Réponses:
Le "problème des philosophes du restaurant" était le problème présenté.
Ceci a ses racines dans les systèmes concurrents et est une question universitaire typique présentée lors de la discussion sur la simultanéité.
Je crois que 4 ou 5 algorithmes "officiels" ont été développés pour résoudre le problème, mais une recherche rapide sur Google pour "Problème des philosophes du restaurant" vous permettra d'obtenir une multitude de résultats.
Pour plus de détails sur ce problème, veuillez consulter le site http://academicearth.org/lectures/dining-philosopher-problem
L'article de Wikipédia se trouve à l' adresse suivante : http://en.wikipedia.org/wiki/Dining_philosophers_problem
Une solution de MSDN Magizine se trouve à l' adresse suivante : http://msdn.microsoft.com/en-us/magazine/dd882512.aspx
Si vous lisez la version originale du document dans les notes de bas de page de la page 866, elle déclare: "Actes du congrès de l'IFIP, 1965, 213-217." Solutions d'un problème dans le contrôle de la programmation simultanée. "
Le problème de la concurrence et des ressources partagées est le "problème des philosophes de salle à manger". :-)
J'espère que ça t'as aidé.
la source