Это, как пишет вика, классический пример, используемый в информатике для иллюстрации проблем синхронизации при разработке параллельных алгоритмов и техник решения этих проблем.
Оттуда же следует, что
Проблема была сформулирована в 1965 году Эдсгером Дейкстрой как экзаменационное упражнение для студентов. В качестве примера был взят конкурирующий доступ к ленточному накопителю. Вскоре проблема была сформулирована Ричардом Хоаром в том виде, в каком она известна сегодня
Вот сама формулировка:
Пять безмолвных философов сидят вокруг круглого стола, перед каждым философом стоит тарелка спагетти. Вилки лежат на столе между каждой парой ближайших философов. Каждый философ может либо есть, либо размышлять. Приём пищи не ограничен количеством оставшихся спагетти — подразумевается бесконечный запас. Тем не менее, философ может есть только тогда, когда держит две вилки — взятую справа и слева (альтернативная формулировка проблемы подразумевает миски с рисом и палочки для еды вместо тарелок со спагетти и вилок). Каждый философ может взять ближайшую вилку (если она доступна), или положить — если он уже держит её. Взятие каждой вилки и возвращение её на стол являются раздельными действиями, которые должны выполняться одно за другим. Суть проблемы заключается в том, чтобы разработать модель поведения (параллельный алгоритм), при котором ни один из философов не будет голодать, то есть будет вечно чередовать приём пищи и размышления.
Я кагбэ, для себя, переформулировал проблему следующим образом:
Есть 2 курильщика, курительные принадлежности, куда входят спички и сигареты. Один взял спички, другой сигареты, и оба зависли в ожидании освобождения 2-й принадлежности.
В связи с этим вопрос: может я че-то не так понял? А если все правильно, то как мы должны называть людей, которые, городят огород, там где все просто как 2х2? О покойниках плохо нельзя, поэтому воздержусь от оскорблений в адрес конкретных «ученых», лучше обобщу: нахрена это делается вообще? Чтоб набить цену? Из-за беспробудной тупости?
И попутно еще вопрос. В русской вики говорится о параллельности, а в английской: «used in concurrent algorithm». Правомерно ли приравнивать конкурентность к параллельности? Вроде, это все-таки, разные вещи, типа, конкурентность же - это иллюзия параллельности, ее имитация.