-1

X、Y、および Z の 3 つの同時プロセスは、特定の共有変数にアクセスして更新する 3 つの異なるコード セグメントを実行します。プロセス X は、セマフォ a、b、および c で P 操作 (つまり、待機) を実行します。プロセス Y は、セマフォ b、c、および d に対して P 操作を実行します。プロセス Z は、それぞれのコード セグメントに入る前に、セマフォ c、d、および a に対して P 操作を実行します。コード セグメントの実行が完了すると、各プロセスは 3 つのセマフォで V 操作 (つまり、シグナル) を呼び出します。すべてのセマフォは、1 に初期化されたバイナリ セマフォです。
次のうち、プロセスによって P 操作を呼び出すデッドロックのない順序を表すものはどれですか?
(A) X:P(a)P(b)P(c) 、Y:P(b)P(c)P(d) 、Z:P(c)P(d)P(a)
(B) X:P(b)P(a)P(c) , Y:P(b)P(c)P(d) , Z:P(a)P(c)P(d)
(C) X:P(b)P(a)P(c) 、Y:P(c)P(b)P(d) 、Z:P(a)P(c)P(d)
(D) X:P(a)P(b)P(c) , Y:P(c)P(b)P(d) , Z:P(c)P(d)P(a)

誰でも答えを説明してもらえますか?

4

1 に答える 1

4

答えは (B) です。これは、すべてのプロセスが同じ順序でロックを開く唯一のものだからです。

In dos then and (A) Xdoes then so could have and be waiting for and could have and be waiting forP(a)P(c)ZP(c)P(a)XacZca

(B)、でP(a)前、で前P(c)X、で前で_ZP(b)P(c)XYP(c)P(d)YZ

では(C)P(b)とがとP(c)の問題です。XY

、、は、(D)、および、およびで問題ですP(a)P(c)XZP(b)P(c)XY

私は、ファイルのロックに関してこの種の問題を抱えていたシステムで作業しました。解決策は、すべてのプロセスが同じ順序でファイルを開くようにすることだったので、アルファベット順に開くことにしました。

于 2013-07-19T20:17:08.117 に答える