並列処理の同期と流れ図
出典: 平成28年度 春期 応用情報技術者試験 午前 問6 (IPA)
流れ図に示す処理の動作の記述として,適切なものはどれか。ここで,二重線は並列処理の同期を表す。

- ア ABC 又は ACB を実行してデッドロックになる。
- イ AB 又は AC を実行してデッドロックになる。
- ウ A の後に BC 又は CB,BC 又は CB,… と繰り返して実行する。
- エ A の後に B の無限ループ又は C の無限ループになる。
正解と解説を見る
正解: ウ
- ア: B と C は互いに待ち合うだけで、資源を取り合うことはないのでデッドロックにはなりません。
- イ: B と C は並列に実行され、両方が終わるまで同期で待つので、片方だけで止まることはありません。
- ウ: A の後、B と C を並列に実行して同期することを繰り返すので正しい答えです。
- エ: 同期の二重線で B と C の両方の完了を待つので、片方だけの無限ループにはなりません。
ポイント
- 二重線は 並列処理の同期 です。上の二重線で B と C に分かれて並列に動き、下の二重線で B と C の両方が終わるのを待って から先に進みます。
- 下の二重線を抜けると、また B と C の前に戻ります。
- よって、A の後に B と C を (BC 又は CB の順で) 実行することを 繰り返し ます。デッドロックや片方だけの無限ループにはなりません。