Искусство выжить. Простое руководство для настоящих программистов
Краткое резюме
В статье на Хабре рассматривается задача Эдсгера Дейкстры о философах (DPP). Автор отмечает, что, хотя существуют различные подходы к решению задачи, окончательное решение проблем параллелизма пока не найдено.
Задача Эдсгера Дейкстры о философах, известная как проблема обедающих философов (Dinning Philosopher Problem, DPP), остаётся актуальной на протяжении многих лет. Она представляет собой вызов, к которому вновь и вновь обращаются специалисты в области программирования.
Недавно на Хабре было опубликовано новое рассмотрение этой задачи, что вдохновило автора на очередную попытку её решения. С момента первого знакомства с проблемой прошло более двадцати лет, и за это время накопился значительный опыт в применении автоматной модели и усовершенствовании среды их реализации.
Автор познакомился с DPP более двадцати лет назад и впоследствии написал статью, в которой философы решали задачу не хуже, чем классические алгоритмы сортировки. Затем был представлен доклад на конференции по параллельным вычислениям в Саратове, где обсуждалась модель автоматных параллельных вычислений и пример её применения — задача Дейкстры.
В ходе обсуждения статьи на Хабре было упущено предложение о поручении сортировки философам, что могло бы помочь убедиться в работоспособности предлагаемого решения. Например, система DeepSeek, быстро предоставившая своё решение DPP, не смогла заставить философов сортировать данные.
Хотя существуют различные теоретические подходы к решению задачи, представленные в монографии Хоара, моделях сетей Петри у Питерсона и В. Е. Котова, они в основном ограничиваются кратким анализом свойств модели или конкретного решения. Статья на Хабре также не предлагает окончательного решения проблем параллелизма, хотя такое решение было бы весьма желательным.