平成23年度 特別 午前 問9
基礎理論
流れ図に示す処理の動作の記述
流れ図に示す処理の動作の記述として,適切なものはどれか。ここで,二重線は並列処理の同期を表す。
〔流れ図〕原典は箱と二重線をつないだ絵。上に文字で写した。
開 始
↓
[ A ]
↓
══════════════ 二重線(ここで 2 本に分かれる)
↓ ↓
[ B ] [ C ]
↓ ↓
══════════════ 二重線(ここで 2 本が合流する)
│ │
└──┐ ┌──┘
(合流の後の線は左右へ回り込み,上の二重線の直後= B と C の入口へ
矢印で戻る。B・C を含む閉じた経路になっていて,出口が無い。)- アA の後に BC 又は CB,BC 又は CB,… と繰り返して実行する。
- イA の後に B の無限ループ又は C の無限ループになる。
- ウABC 又は ACB を実行してデッドロックになる。
- エAB 又は AC を実行してデッドロックになる。
答えと解説を見る
✓ これが正解アA の後に BC 又は CB,BC 又は CB,… と繰り返して実行する。
解説
二つを並列に実行し、そろうのを待って繰り返します。
並列処理の流れ図は、分かれ目と合流点と戻りの線の三つだけを追えば読めます。この図では、最初の処理が終わったところに二重線があり、そこから二本の道に分かれて、それぞれ別の処理が置かれています。その下にもう一本の二重線があり、二本の道がそこで一本に戻ります。二重線はそろうまで待つ棒だと思ってください。下の二重線では、二本の道の処理が両方とも着くまで先へ進ませません。これが同期です。ここまでが一周分で、合流したあとの線は左右へ回り込み、分かれた直後の入口へ戻っています。出口はありませんので、同じ一周が続きます。正解の記述は、最初の処理のあとに二つの処理を並べ、その組を繰り返すという読み方をしています。並べ方を二通り書いているのは、二つが並列に置かれている以上どちらが先に終わるか決まらないからで、実行のたびに順序が入れ替わりうることを言い当てています。末尾で繰り返しに触れているのは、戻りの線を読み取った結果です。ここで確かめておきたいのは、止まらないことと止まってしまうことは別だという点です。この図で待っているのは相手の終了だけで、どちらの処理も必ず終わって二重線に着きますから、待ち合わせは必ず成立します。
ほかの選択肢はなぜ違うのか
- イA の後に B の無限ループ又は C の…:片方だけが回り続けるには、下の待ち合わせの棒が一方だけを通す必要があります。両方そろうまで先へ進ませない決まりがある以上、そのような回り方にはなりません。
- ウABC 又は ACB を実行してデッドロ…:A・B・C の三つとも実行される点までは図と合いますが、そこで進めなくなるという読みが違います。互いに相手の資源を握り合う場面がないので止まりません。
- エAB 又は AC を実行してデッドロック…:デッドロックは互いに相手の資源を待って双方が進めなくなる状態を指し、この図にはその原因がありません。二本のうち片方しか実行しないという読み取りも、分かれ目の意味と合いません。
出典:平成23年度 特別 応用情報技術者試験 午前 問9
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)