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

- ア ABC又はACBを実行してデッドロックになる。
- イ AB又はACを実行してデッドロックになる。
- ウ Aの後にBC又はCB,BC又はCB,…と繰り返して実行する。
- エ Aの後にBの無限ループ又はCの無限ループになる。
解答・解説を見る
正解:ウ
AI解説
流れ図の二重線はフォーク(並列処理の開始)とジョイン(同期・合流)を表す。Aの実行後にBとCが並列に起動され、両方の完了を待ち合わせてから再びBとCを起動する、という動作を繰り返す。BとCは並行なのでどちらが先に終わるかは不定であり、実行順はBC又はCBとなる。待ち合わせは必ず成立するのでデッドロックにはならず、ウが正しい。 ア: デッドロックは互いに資源を待ち合って進めなくなる状態だが、この図の同期は両タスクの完了を待つだけで必ず成立するため発生しない。 イ: BとCは択一ではなく並列に両方実行される。また同期は成立するのでデッドロックにもならない。 ウ: 正しい。Aの後、BとCの並列実行と同期(両方の完了待ち)を繰り返すため、BC又はCBの順で繰り返し実行される。 エ: 同期点で両方の完了を待ってから次の繰返しに進むため、片方だけの無限ループにはならない。 💡 並列流れ図では「二重線=フォーク/ジョイン(同期バー)」を思い出す。並列タスクの完了順序は不定だが、ジョインで足並みがそろう、というのが読み取りの基本である。
出典:平成25年度 春期 応用情報技術者試験 午前 問8 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。