応用情報技術者 2011年 春期 午前2 問09
問題文
流れ図に示す処理の動作の記述として、適切なものはどれか。ここで、二重線は並列処理の同期を表す。

選択肢
ア:Aの後にBC 又は CB, BC 又は CB,...と繰り返して実行する。(正解)
イ:Aの後にBの無限ループ又はCの無限ループになる。
ウ:ABC 又は ACBを実行してデッドロックになる。
エ:AB 又は ACを実行してデッドロックになる。
流れ図に示す処理の動作の記述【午前2 解説】
要点まとめ
- 結論:この流れ図は「Aの後にBとCが並列に繰り返し実行される」動作を示しています。
- 根拠:二重線は並列処理の同期を表し、BとCが独立してループしつつ同期点で合流しているためです。
- 差がつくポイント:並列処理の同期とループの流れを正確に読み取り、デッドロックや無限ループの誤解を避けることが重要です。
正解の理由
ア: Aの後にBC 又は CB, BC 又は CB,...と繰り返して実行する。が正解です。
図の二重線は並列処理の同期を示し、Aの処理後にBとCが並列に開始され、それぞれ独立にループしながら同期点で合流しているため、BとCが交互に繰り返される動作を表しています。デッドロックや単一の無限ループではありません。
図の二重線は並列処理の同期を示し、Aの処理後にBとCが並列に開始され、それぞれ独立にループしながら同期点で合流しているため、BとCが交互に繰り返される動作を表しています。デッドロックや単一の無限ループではありません。
よくある誤解
- 二重線を単なる分岐と誤解し、BかCのどちらか一方だけが実行されると考える。
- ループの戻り矢印を無限ループと誤認し、処理が停止しないと誤解する。
解法ステップ
- 流れ図の開始からAの処理までの流れを確認する。
- Aの後に二重線で示された並列処理の開始を理解する。
- BとCがそれぞれ独立に処理され、ループしていることを確認する。
- 並列処理の同期点(上下の二本の水平線)で処理が合流していることを把握する。
- これらの情報から、BとCが交互に繰り返される動作と判断する。
選択肢別の誤答解説
- イ: 「Bの無限ループ又はCの無限ループになる」は誤り。BとCは並列で動作し、同期点で合流しているため単独の無限ループではない。
- ウ: 「ABC 又は ACBを実行してデッドロックになる」は誤り。デッドロックは同期待ちが互いに解除されない状態だが、図では同期点で正常に合流している。
- エ: 「AB 又は ACを実行してデッドロックになる」も誤り。BとCは並列で動作し、どちらか一方だけが実行されるわけではなく、デッドロックも発生しない。
補足コラム
並列処理の流れ図では、二重線が「同期点」を示すことが多いです。これは複数の処理が並行して進み、一定のポイントで全ての処理が完了するのを待つことを意味します。同期点を正しく理解しないと、デッドロックや無限ループと誤認しやすいため注意が必要です。
FAQ
Q: 並列処理の同期点とは何ですか?
A: 複数の処理が同時に進行し、全ての処理が完了するまで次の段階に進まない制御ポイントです。
A: 複数の処理が同時に進行し、全ての処理が完了するまで次の段階に進まない制御ポイントです。
Q: なぜデッドロックにならないのですか?
A: 図の同期点は全ての処理が完了するのを待つだけで、互いに資源を奪い合う状態がないためデッドロックは発生しません。
A: 図の同期点は全ての処理が完了するのを待つだけで、互いに資源を奪い合う状態がないためデッドロックは発生しません。
関連キーワード: 並列処理、同期、流れ図、デッドロック、無限ループ、制御フロー

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

