応用情報技術者試験 応用情報技術者試験 平成28年度春期 午前 問6: 流れ図に示す処理の動作の記述として,適切なものはどれか。ここで,二重線は並列処理の同期を表す。
流れ図に示す処理の動作の記述として,適切なものはどれか。ここで,二重線は並列処理の同期を表す。 56.62%
問題本文
流れ図に示す処理の動作の記述として,適切なものはどれか。ここで,二重線は並列処理の同期を表す。
選択肢
- ア.ABC 又は ACB を実行してデッドロックになる。
- イ.AB 又は AC を実行してデッドロックになる。
- ウ.A の後に BC 又は CB,BC 又は CB,… と繰り返して実行する。
- エ.A の後に B の無限ループ又は C の無限ループになる。
正解
ウ. A の後に BC 又は CB,BC 又は CB,… と繰り返して実行する。
解説
二重線(同期バー)は並列処理の開始と合流を表し、最初のバーで複数の処理に分岐し、次のバーでは全ての処理が到着するまで待ち合わせてから先へ進む。流れ図ではAの後に同期バーでBとCに分岐し、BとCは並行に実行され(順序はBC・CBどちらもあり得る)、両方が終わると合流して再びAの後の分岐に戻る構造になっている。よってAの後にBとCの並列実行を繰り返すことになり、正解はウである。
選択肢ごとの解説
- ア.BとCは並列(同時)に実行されるのであって、ABCやACBのように逐次1つずつ実行されるわけではない。また同期バーで正しく合流できるためデッドロックにもならず誤り。
- イ.合流の同期バーはBとC両方の到着を待つだけで、互いの資源を待ち合う関係はなく、AB止まり・AC止まりでデッドロックになることはないため誤り。
- ウ.Aの後に同期バーでBとCへ分岐し並行実行、両者が合流すると再びAの分岐へ戻る繰り返し構造であり、流れ図の動作を正しく説明しているため正しい。
- エ.BとCは並列に実行され、両方が終わってから次へ進むのであって、片方だけが無限ループするわけではないため誤り。
応用情報技術者試験 平成28年度春期 午前 の過去問一覧へ戻る・問6