表は,ジョブ1~3が資源 A ~ C にかけるロックの種別を表す。また,資源へのロックはジョブの起動と同時にかけられる。ジョブ1~3のうち二つのジョブをほぼ同時に起動した場合の動きについて,適切な記述はどれか。ここで,表中の“-”はロックなし,“S”は共有ロック,“X”は占有ロックを示す。
ア |
ジョブ1の後にジョブ3を起動したとき,ジョブ3の資源待ちはない。 |
イ |
ジョブ2の後にジョブ1を起動したとき,ジョブ1の資源待ちはない。 |
ウ |
ジョブ2の後にジョブ3を起動したとき,ジョブ3の資源待ちはない。 |
エ |
ジョブ3の後にジョブ1を起動したとき,ジョブ1の資源待ちはない。 |
解答・解説を見る
解答:イ
ア |
× |
ジョブ1により共有ロックされた資源Aに対して、ジョブ3は占有ロックできない。資源待ちが発生する。 |
イ |
○ |
ジョブ2により共有ロックされた資源Aに対して、ジョブ1は共有ロックは可能である。資源待ちはない。 |
ウ |
× |
ジョブ2より共有ロックされた資源Aに対して、ジョブ3は占有ロックできないので資源待ちが発生する。さらにジョブ2により占有ロックされた資源Bに対して、ジョブ3は共有ロックが許可されないので、デッドロック状態になる。資源待ちが発生する。 |
エ |
× |
ジョブ3により占有ロックされた資源Aに対して、ジョブ1は共有ロックが許可されない。資源待ちが発生する。 |