応用情報技術者 2009年 秋期 午前2 問06
問題文
流れ図で表される処理を複数回実行した場合、途中に出現し得る実行順序はどれか。ここで、二重線は並列処理の同期を表す。

選択肢
ア:B→A→B→A
イ:B→X→A→Y(正解)
ウ:X→B→A→Y
エ:Y→X→B→A
🔒 解説は解答すると表示されます
並列同期の実行順序【午前2解説】
正解の理由
図の二重線は並列処理の同期を表します。二重線から下へ、左はA→B、右はX→Yの順に処理が進みます。BとYの下から出た線は外側を回って上から二重線へ戻るので、二重線で「BとYの両方が終わる」のを待ってから、次の回のAとXが始まります。
つまり、1回分の処理は「A→B」と「X→Y」が並列に進み、次の回のA・Xは前の回のB・Yがそろうまで始まりません。イのB→X→A→Yは、前の回のYがBより先に終わっていれば、ある回のBが終わって同期がとれた後に、次の回のX、A、Yが続く並びとして現れます。よってイが正解です。
解法ステップ
- 図から順序の制約を読み取る。
- 同じ回の中では A→B、X→Y の順。
- 次の回の A・X は、前の回の B と Y の両方が終わった後(二重線での同期)。
- 各選択肢の並びに、回の番号を割り当てられるかを調べる。
- どう割り当てても制約に反するものは、出現し得ない。
選択肢別の誤答解説
- ア: B→A→B→A
最初のBの後のAは次の回のAです。その回のBの後にさらに次の回のAを実行するには、その間に同じ回のX→Yが終わっていなければなりません。XとYが一つも現れないこの並びは出現しません。 - イ: B→X→A→Y
ある回のB(同じ回のYは既に終了)で同期がとれ、次の回のX、A、Yが実行される並びとして出現し得ます。 - ウ: X→B→A→Y
最初のXは、直後のBと同じ回のXでなければなりません(次の回のXなら、Bの後でないと始められません)。するとAは次の回のAですが、それには同じ回のYが先に終わっている必要があります。ところがYはAより後にあるので、この並びは出現しません。 - エ: Y→X→B→A
Xの後にBがあるので、BはXと同じ回のBです。最後のAは次の回のAですが、それにはXと同じ回のYが先に終わっている必要があり、それが並びにありません。
よくある誤解
- 枝の中の順序(A→B、X→Y)だけを確認して、同期の制約を見落とすこと。二重線があるので、次の回の処理は前の回の両方の枝が終わるまで始まりません。
- 箱の上下の位置だけで順序を決めること。矢印と線のつながりを追って、どこで同期するかを確認します。
補足コラム
並列処理の図は、「各枝の中の順序」と「同期点で何を待つか」の二つの制約を書き出すと判定しやすくなります。選択肢の並びに回の番号を割り当て、二つの制約を同時に満たせるかを確かめるのが確実です。
FAQ
Q. 同期点では処理が同時に始まるのですか?
A. 同期点は「両方の枝がそろうまで次へ進まない」ことを表します。次の回のAとXはどちらも同期の後に始まりますが、その後の実行の速さによって、AとXのどちらが先に現れるかは決まっていません。
A. 同期点は「両方の枝がそろうまで次へ進まない」ことを表します。次の回のAとXはどちらも同期の後に始まりますが、その後の実行の速さによって、AとXのどちらが先に現れるかは決まっていません。
Q. なぜイでは、Bの前にYがなくてもよいのですか?
A. 問われているのは「途中に出現し得る」並びです。前の回のYが、この並びより前に終わっていれば問題ありません。
A. 問われているのは「途中に出現し得る」並びです。前の回のYが、この並びより前に終わっていれば問題ありません。
関連キーワード: 並列処理、同期、フローチャート、実行順序

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

