平成23年 春期 応用情報技術者 午前 問9

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

 ア  Aの後にBC又はCB、BC又はCB、…と繰り返しになる。
 イ  Aの後にBの無限ループ又はCの無限ループになる。
 ウ  ABC又はACBを実行してデッドロックになる。
 エ  AB又はACを実行してデッドロックになる。


答え ア


解説
流れ図に沿って処理をトレースする。

  1. 処理が開始されると、Aが実行される。
  2. Aが終了すると処理は分岐して並列処理になり、次に実行されるのはBかCのいずれかである。
  3. 先にBが実行されると、実行後は下の二重線の並列同期でCが実行されるのを待つ。
    すなわち、B→Cと実行される。
  4. 先にCが実行されると、実行後は下の二重線の並列同期でBが実行されるのを待つ。
    すなわち、C→Bと実行される。
  5. BとCの両方の処理が実行されると、Bの処理はBを実行に、Cの処理はCの実行に移行する。
    ここで、次に処理されるのがB、Cのどっちかはわからない。
  6. 以下同様に、B→CかC→Bが繰り返し実行される。
したがって、処理の順序としては
 A→(B→C | C→B)→(B→C | C→B)→…
(ア)になります。


キーワード
・並列処理の同期

キーワードの解説
  • 並列処理の同期
    複数の処理が、処理される順番に関係なく実行されるものを並列処理といいます。
    1つの処理が複数の並列処理に分岐し、分岐した各処理がすべて終わってから次の処理を開始する場合、分岐した処理で先に終了した処理が他の処理を待つことを同期といいます。

もっと、「並列処理の同期」について調べてみよう。

戻る 一覧へ 次へ