最近、食事の哲学者の問題に関するこのウィキペディアの記事を読みましたが、チャンディ/ミスラの解決策についてはよくわかりません。
記事によると、「フォークを持った哲学者はリクエストメッセージを受け取ったとき、フォークが汚れていればフォークを保持し、汚れていればあきらめる」とのことです。この質問の文脈では、彼は食べている場合はパスし、まだ食べ始めていない場合は保持します。
シナリオによると、Dirty とはどういう意味ですか? スレッドは実行中ですか、それとも降伏しましたか?
最近、食事の哲学者の問題に関するこのウィキペディアの記事を読みましたが、チャンディ/ミスラの解決策についてはよくわかりません。
記事によると、「フォークを持った哲学者はリクエストメッセージを受け取ったとき、フォークが汚れていればフォークを保持し、汚れていればあきらめる」とのことです。この質問の文脈では、彼は食べている場合はパスし、まだ食べ始めていない場合は保持します。
シナリオによると、Dirty とはどういう意味ですか? スレッドは実行中ですか、それとも降伏しましたか?
ダーティとは、処理が開始されたために中断される可能性があることを意味します。
また、フォークが2つある場合にのみ処理できます。
ダーティは「アイドル状態」または「利用可能だった」を意味するようで、クリーンは「要求する必要があった」または「プリエンプトされた」を意味します。
フォークを手に取った場合は「ダーティ」であり (必要なときにフォークが競合していなかった場合)、フォークを要求しなければならない場合は「クリーン」であり、初期状態はダーティであると表示されます。
利用可能なフォークを拾う => フォークが汚れている => きれいにして、尋ねられたらあきらめます。
利用可能なフォークがありません => それを要求する必要があります => クリーニングされたものを受け取ります。
Don't Interrupt an Interrupt という組織パターンを思い出します。