3

デッドロックが発生するために必要な 4 つの条件 (相互排除、保留と待機、プリエンプションなし、循環待機) を理解しています。しかし、4 つの条件が満たされ、システムがデッドロック状態にならない状況は存在するのでしょうか。

つまり、デッドロックが発生した場合、4 つの条件が存在します。しかし、4 つの条件が存在する場合、必ずデッドロックが発生するのでしょうか。4 つの条件が存在し、システムがデッドロック状態にない例は?

4

2 に答える 2

2

これらは必要条件ですが十分条件ではないため、ほぼ確実にこれらの条件が真である状況が存在しますが、デッドロックは発生しません。

これらの条件を満たすシステムには、デッドロック状態があるだけです。これらのデッドロック状態のいずれにも到達しない実行パスが存在する可能性があります。私は例を合成するのに苦労していましたが、ありがたいことに他の誰かが私のためにそれをしてくれました.

于 2013-06-07T01:08:50.473 に答える
0

優先度グラフを描画することでデッドロックが発生しているかどうかを調べることができ、グラフにサイクルがあればデッドロックが発生します。また、ライブロックを取得するのに十分なほど不幸になることもあります。グラフにサイクルがある場合、プロセスはシリアル化できません。したがって、プロセスについて確実にするには、その優先順位グラフを描画し、優先順位グラフにサイクルが含まれているかどうかを調べます。

于 2013-06-07T01:14:49.360 に答える