【問題】
流れ図に示す処理の動作の記述として、適切なものはどれか。ここで、二重線は並列処理の同期を表す。
開始
┃
A
┃
=
┏ ┃ ┃ ┓
┃ B C ┃
┃ ┃ ┃ ┃
┃ = = ┃
┗━┛ ┗━┛
ア.ABC又はACBを実行してデッドロックになる。
イ.AB又はACを実行してデッドロックになる。
ウ.Aの後にBC又はCB、BC又はCB、…と繰り返して実行する。
エ.Aの後にBの無限ループ又はCの無限ループになる。
【解答】
二重線が並列処理の同期を表す、というところから解答を導くことが出来る。
①まずはAが実行される。
②同期がとられる。
③その後にBまたはCが実行される。
④前段階(③)でBを実行した場合は、Cが実行され、同期がとられる。前段階でCを実行した場合は、Bが実行され、やはり同期がとられる。
⑤前々段階(③)を繰り返す。
という動作を繰り返すから、解答はウとなる。
この問題は、細かい動作までは分からなくても、Aの後にBCが動くということと、BCまたはCBという動作になるところまで分かれば、消去法で解答を導き出すことが出来る。