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


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



正解 ウ


解説

この問題のキモは「二重線は並列処理の同期を表す」です。
BとCの下に二重線があるため、「Bが先に実行されるとCの実行を待つ、Cが先に実行された場合はBの実行を待つ」事が分かります。

ステップ1


まず、Aが実行され、続いてBまたはCが実行されます。
この図ではBを実行していますが、BCどちらが先に実行されるかの規定はありません。

ステップ2


Bが実行されたら、二重線のところでCの実行を待ち、Cが実行されたらBの実行を待ち、二重線の所で同期を取ります。
二重線の所で同期をとるため、BBBB・・・やCCCC・・・・と連続で実行されることはないのでエは不正解です。

ステップ3



BC共に二重線まで到着したら、またBCのどちらかを先に実行し、残りの実行を待ち、またBCの・・・と繰り返しになります。
よって、ウが正解です。

また、この流れ図の中に「ロック」している箇所がないため「デッドロック」はありえません。