平成25年度 春期 午前 問8
コンピュータ構成要素
流れ図に示す処理の動作の記述
流れ図に示す処理の動作の記述として,適切なものはどれか。ここで,二重線は並列処理の同期を表す。
〔流れ図〕
(開 始)
↓
┌───┐
│ A │
└───┘
↓
┌→═════════════════←┐ ← 上の二重線(分岐の同期)
│ ↓ ↓ │ 左右から矢印が【入って】くる
│ ┌───┐ ┌───┐ │
│ │ B │ │ C │ │ B と C は並列
│ └───┘ └───┘ │
│ ↓ ↓ │
└──═════════════════──┘ ← 下の二重線(合流の同期)
ここから左右の線が上の二重線へ戻る
(終わりの記号は無い)- アABC 又は ACB を実行してデッドロックになる。
- イAB 又は AC を実行してデッドロックになる。
- ウA の後に BC 又は CB,BC 又は CB,… と繰り返して実行する。
- エA の後に B の無限ループ又は C の無限ループになる。
答えと解説を見る
✓ これが正解ウA の後に BC 又は CB,BC 又は CB,… と繰り返して実行する。
解説
合流から分岐へ矢印が戻るので繰り返しになります。
流れ図の記号を順に読みます。最初の処理を一度実行したあと、上の二重線で二つの処理へ分かれ、下の二重線で両方の終わりを待ち合わせます。ここまでは並列処理の型どおりです。決め手は、下の二重線から出た線がどこへ入っているかです。外側の二本の線は上の二重線へ矢印で入っていますので、待ち合わせが済むと分岐の位置へ戻ります。終了を表す記号も描かれていません。したがって、最初の処理のあとは二つの処理の並列実行が何度も繰り返されます。分かれた二つの処理はどちらが先に走るか決まりませんが、待ち合わせが両方の完了で解ける以上、周回の結果は同じです。流れ図を読むときは、終了の記号があるかどうかと、戻りの矢印がどこへ入るかの二点を先に確かめると読み違えが減ります。戻り先が分岐なら、並列の部分ごと繰り返すことになります。
ほかの選択肢はなぜ違うのか
- アABC 又は ACB を実行してデッドロ…:三つを一度ずつ実行して止まるという読みです。待ち合わせは両方の完了で解けますし、その先に戻りの矢印がありますから、そこで動きが止まってしまうことはありません。
- イAB 又は AC を実行してデッドロック…:片方だけを実行して止まるという読みです。分かれた二つはどちらも実行されますので、デッドロックになるのは互いが相手の完了を待つように線が組まれているときだけです。
- エA の後に B の無限ループ又は C の…:片方だけが回り続けるという読みです。もし戻り先が一方の箱の直前ならその読みになりますが、この図では矢印が分岐の側へ入っています。
出典:平成25年度 春期 応用情報技術者試験 午前 問8
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)