平成28年春期試験問題 午前Ⅰ 問3

流れ図に示す処理の動作の記述として,適切なものはどれか。ここで,二重線は並列処理の同期を表す。
am1/06.gif

  • ABC又はACBを実行してデッドロックになる。
  • AB又はACを実行してデッドロックになる。
  • Aの後にBC又はCB,BC又はCB,…と繰り返して実行する。
  • Aの後にBの無限ループ又はCの無限ループになる。
正解 問題へ
分野:テクノロジ系
中分類:アルゴリズムとプログラミング
小分類:アルゴリズム
解説
図中には二重線が示す同期部分があるため、2つのタスクが協調し合いながら処理を進める同期制御の流れ図であることがわかります。
同期制御では、2つの処理の待ち合わせが行われます。一方の処理が先に終了した場合でも、その先の処理に進まず、二重線が示すポイントでもう一方の処理の終了を待ちます。

問題の流れ図ではまずAが実行され、その後BとCがほぼ同時に実行されます。すぐ下に同期のポイントがあるため、Bが先に終了した場合はCの終了を、Cが終了した場合にはBの終了を、それぞれ待つことになります。同期ポイントの存在によってB又はCの片方だけが連続して実行されることはなくなります。

この結果、Aが最初に一度だけ実行され、その後はBC又はCB、BC又はCB、…の実行が繰返し行われることになります。
am1/06a.gif
したがって正解は「ウ」です。

Pagetop