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

- ア ABC又はACBを実行してデッドロックになる。
- イ AB又はACを実行してデッドロックになる。
- ウ Aの後にBC又はCB,BC又はCB,…と繰り返して実行する。
- エ Aの後にBの無限ループ又はCの無限ループになる。
解答・解説を見る
正解:ウ
AI解説
流れ図の二重線は並列処理の同期(fork/join)を表す。処理Aの後に処理BとCが並列に起動され、両方の完了を同期点で待ち合わせてから、再びBとCを並列実行する、という動作を繰り返す。並列実行のためBとCの完了順序は不定であり、BC又はCBの順に見える実行を繰り返すウが適切である。 ア: 同期が正しく取られるためデッドロック(互いに待ち合って進めなくなる状態)には陥らない。 イ: BとCは択一ではなく並列に両方実行され、デッドロックにもならない。 ウ: 正解。Aの後、BとCの並列実行と同期を繰り返すため、見かけ上BC又はCBの順で繰り返し実行される。 エ: 同期点で両方の完了を待つため、一方だけの無限ループにはならない。 💡 流れ図の二重線は「フォーク(分岐)とジョイン(待合せ)」。並列処理では実行順序が不定になる点と、同期が取れていればデッドロックしない点を押さえる。
出典:平成28年度 春期 応用情報技術者試験 午前 問6 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。