「食事する哲学者の問題」の版間の差分

削除された内容 追加された内容
Pikachium (会話 | 投稿記録)
m ボウルとボールの表記をボウルに統一
8行目:
[[Image:An illustration of the dining philosophers problem.png|thumb|200px|食事する哲学者の問題]]
 
スパゲッティをボルから取って自分の皿によそうには2本のフォークを必要とし、哲学者は一度に1本のフォークしかテーブルから取ることができない、とする(左右の手で同時に両側にある2本のフォークを取ることはできない、という意味。まずどちらかの側のフォークを取ってから、逆の側のフォークを取る)。会話などの別の手段によって調整するわけでもなく、さらに、いったん手に取ったフォークを調整のために手放すことも無い、とすると、5人が左のフォークを手にとって右のフォークが食卓に置かれるのを待つという危険な[[デッドロック]]状態が発生する可能性がある。
 
デッドロックの可能性は、このモデルで示せるわかりやすい問題だが、それ以外にも解決が必要な点は指摘できる。たとえばデッドロックを回避できる簡単な解だが有用性の無いものに、常に固定された隣り合わない2人の哲学者(5人の場合)だけが食事できる、というものがある。これは公平性が無く、残りの食事できない哲学者の観点からは飢餓の問題でもある。1個だけの[[トークン]]を用意し、常に交代で1人だけが食事できる、という手法は確実な解ではあるが効率が悪い(並列処理の問題として見た場合、並列処理が可能であるにもかかわらず、それが活用されない)。といったように、さまざまな角度から検討できる。