Problem ucztujących filozofów
Z Wikipedii
Problem ucztujących filozofów (znany też jako problem pięciu filozofów) to informatyczny problem synchronizacji, przedstawiony przez E. Dijkstrę w 1965 roku, o następującej treści:
- Przy okrągłym stole siedzi pięciu filozofów. Na stole, przed każdym z ucztujących, znajduje się talerz oraz pomiędzy każdymi dwoma sąsiadami - widelec. Oprócz tego na środku stołu znajduje się miska z makaronem (różne wersje tego problemu mówią o rybie lub ryżu i pałeczkach). Aby przystąpić do konsumpcji makaronu filozof musi zaopatrzyć się w dwa, dobierane pojedynczo, widelce. Po spożyciu pokarmu filozof odkłada oba widelce i oddaje się własnym rozważaniom, aż do czasu gdy ponownie zgłodnieje. Problem polega na opracowaniu takiego algorytmu działań uczestników uczty, aby żaden z nich nie został zagłodzony oraz aby nie doszło do blokady całego systemu (w sytuacji, gdy każdy z filozofów ma po jednym widelcu).
Problem ucztujących filozofów jest prezentacją problemu synchronizacji pracujących współbieżnie procesów. Istnieje kilka możliwych rozwiązań tego problemu, między innymi wykorzystujące arbitrów lub grupy semaforów.