W artykule Dijkstry „Humble Programmer” wspomina, że dał niektórym ochotnikom problem do rozwiązania:
„Przeprowadziłem mały eksperyment programistyczny z naprawdę doświadczonymi wolontariuszami, ale pojawiło się coś zupełnie niezamierzonego i zupełnie nieoczekiwanego. Żaden z moich wolontariuszy nie znalazł oczywistego i najbardziej eleganckiego rozwiązania. Po bliższej analizie okazało się, że ma to wspólne źródło: ich pojęcie powtarzania było tak ściśle związane z ideą powiązanej kontrolowanej zmiennej, która ma zostać wzmocniona, że mentalnie nie można było dostrzec oczywistości. Ich rozwiązania były mniej wydajne, niepotrzebnie trudne do zrozumienia, a znalezienie ich zajęło im bardzo dużo czasu. ”
W czym problem Dijkstra podał wolontariuszom? Jakie były rozwiązania?
źródło
Odpowiedzi:
Przedstawiony problem stanowił „Problem filozofów kulinarnych”.
Ma to swoje korzenie w systemach współbieżnych i jest typowym pytaniem uniwersyteckim omawianym podczas omawiania Współbieżności.
Wierzę, że opracowano 4 lub 5 „oficjalnych” algorytmów, aby rozwiązać problem, ale szybkie wyszukiwanie w Google hasła „Problem filozofów kulinarnych” da ci bardzo różne wyniki.
Szczegółowe informacje na temat tego problemu z Standford U można znaleźć na stronie : http://academicearth.org/lectures/dining-philosopher-problem
Artykuł w Wikipedii znajduje się na stronie : http://en.wikipedia.org/wiki/Dining_philosophers_problem
Rozwiązanie MSDN Magizine znajduje się pod adresem : http://msdn.microsoft.com/en-us/magazine/dd882512.aspx
Jeśli czytasz oryginalną wersję artykułu w przypisach na stronie 866, stwierdza on: „Postępowanie Kongresu IFIP 1965, 213–217”. „Rozwiązania problemu w jednoczesnej kontroli programowania”.
Problemem współbieżności i współdzielonych zasobów jest „Problem filozofów kulinarnych”. :-)
Mam nadzieję, że to pomaga.
źródło