モニタを使った解法とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > モニタを使った解法の意味・解説 

モニタを使った解法

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/04 23:33 UTC 版)

食事する哲学者の問題」の記事における「モニタを使った解法」の解説

下のコード例示した解法では、フォーク明示的に出てこない。哲学者両隣哲学者食事中でないときだけ食事できる。これはつまり、2本目フォーク取れない哲学者は必ずフォークを一旦置いて待ち改め1本目から試行するという方式である。 フォークごとのロックがないため、哲学者両隣哲学者の状態に基づいて食事開始するかを決めなければならないが、その状態情報古くないことを保証する必要がある哲学者2が哲学者1が食事していないことを確認し次に哲学者3を見るとしたとき、1は2が3を見ている間に食事始めるかもしれない。この解法ではそのような状況を防ぐため、単一相互排他ロックを使う。これは特定のフォークに結びついたものではなく哲学者らの状態を変更する手続きそのもの対応したのである。それがモニタという機構である。手続き testpickupputdownモニタに結びついており、1つ相互排他ロック共有する食事できるうになるのを待っている哲学者フォーク持ってはいない点に注意が必要である。食事したい哲学者がいると、モニタ1つ目のフォークを手放させ、2本目入手可能になった時点1本目から再試行させる。食事終わったら、哲学者モニタシグナル送り両方フォーク利用可能な状態になったことを知らせる。 なお、例に挙げたコードではリソーススタベーション防げない。例えば、1番と3番哲学者食事する期間が常にオーバーラップしていると、2番哲学者はずっと食事できないことになる。 スタベーションを防ぐには空腹哲学者食事できなかった回数保持し、それがある限度越えた場合哲学者の状態を Hungry から Starving変更する。そして、フォーク与えかどうか判断する際に両隣どちらも Starving でないこととい条件加え必要があるどちらか隣人Starving だったために食事できなかった哲学者は、事実上その隣人隣人食事終えるのを待つことになる。このように依存関係追加されることで並行性減っていく。Starving とするしきい値大きくすれば、そのような影響抑えることができる。

※この「モニタを使った解法」の解説は、「食事する哲学者の問題」の解説の一部です。
「モニタを使った解法」を含む「食事する哲学者の問題」の記事については、「食事する哲学者の問題」の概要を参照ください。

ウィキペディア小見出し辞書の「モニタを使った解法」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「モニタを使った解法」の関連用語

モニタを使った解法のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



モニタを使った解法のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの食事する哲学者の問題 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS