問 題
四つの資源A~Dを順次占有して処理を行う五つのプロセスとして、プロセス Ⓧ 及びプロセス ㋐ ~ ㋓ がある。
各プロセスは処理の進行に伴い、用いる資源を占有する。占有した資源は直後に続く処理に用いる資源を占有してから解放される。また、用いる資源が他のプロセスによって占有されている場合は、その資源が解放されるまで待機する。各プロセスは、以下の順に資源を用いる処理を繰り返し実行する。
プロセスⓍ:A→B→C→D
プロセス㋐:A→B→C→D
プロセス㋑:D→C→B→A
プロセス㋒:C→D→A→B
プロセス㋓:D→B→C→A
プロセス ㋐ ~ ㋓ のうちいずれか一つをプロセス Ⓧ と同時並行に実行したとき、デッドロックを起こす可能性があるもののみを全て挙げているのはどれか。ただし、この場合のデッドロックとは、二つのプロセスが互いに相手の占有している資源の解放を待って双方が待機し続ける状態をいう。
1.㋐、㋒、㋓
2.㋑
3.㋑、㋒
4.㋑、㋓
5.㋒
解 説
プロセスは、やりたい競技や科目だと思うといいです。資源とは、ボールやネットやサッカーゴールといった用具と考えるとイメージしやすいと思います。並列実行では、登場人物が2人以上です。ここでは、アリスとボブとします。
アリスがプロセス A をやろうとして、資源 X をまず独り占めします。その後 Y を独り占めしようとするのですが、この時 Y をボブが独り占めしていて、しかもボブが次に欲しいのが X だったとします。
するとアリスは「Yが早く解放されないかなぁ。。。」と待ち、ボブは「早く X が解放されないかなぁ。。。」と待ち、いつまでたっても何もかわりません。これがデッドロックです。
この例からもわかるように、占有順の優先順位が「逆順」になっていると、デッドロックが起きる可能性があります。
選択肢に最も多く出てくることもあり、まず目をつけるのは プロセス ㋑ だと思われます。すると、プロセス X が C を実行中 (次に必要な資源が D) に プロセス ㋑ が D を実行中 (次に必要な資源が C) となるとデッドロックが生じます。正解は 2 ~ 4 です。
繰り返し実行されることから、プロセス X が D を実行中 (次に必要な資源が A) で、プロセス ㋓ が A を実行中 (次に必要な資源が D) でもデッドロックが生じます。
以上より、正解は 4 です。
類題 H26 no38
https://yaku-tik.com/koumuin/h26-denjyou-38/
コメント