🙌

分散処理を勉強した記録~その15~

2021/01/02に公開

この記事は、
「分散処理システム」著:真鍋義文 森北出版株式会社
を参考にしています。

今回は、「Coterieを用いた相互排除」です。
以前、
管理プロセスの集合の過半数から許可が下りればリソースを使用できる
という前提で話を進めていましたが、
複数のプロセスがリクエストした際に管理プロセスが重複するとデッドロックやライブロックの原因になりかねません。
そこで、管理プロセスが重複しないような条件を満たす集合Coterieを定義します。

プロセスPiとPjがそれぞれリクエストを送るのは、
同じCoterie内に居る別の管理プロセスQ1とQ2です。

管理プロセスの集合Uを例に、過半数の場合とCoterieの場合をそれぞれ考えてみます。

過半数の場合、
C={{S1,S2,S3},{S1,S2,S3},{S1,S3,S4},{S2,S3,S4}}
Coterieの場合、
C'={{S1,S2},{S1,S3},{S1,S4},{S2,S3,S4}}
となります。
ここで、C'の方が通信計算量が少なくて済む組み合わせになっていることが分かります。

今回はここまでです。ありがとうございました。

Discussion