平成24年度 春期 午前 問20
ソフトウェア
タスクに関する問題
二つのタスクの優先度と各タスクを単独で実行した場合の CPU と入出力装置(I/O)の動作順序と処理時間は,表のとおりである。二つのタスクが同時に実行可能状態になってから,全てのタスクの実行が終了するまでの経過時間は何ミリ秒か。ここで,CPU は 1 個であり,I/O の同時動作はできないものとし,OS のオーバヘッドは考慮しないものとする。また,表の( )内の数字は処理時間を示すものとする。
優先度 | 単独実行時の動作順序と処理時間(ミリ秒)
───────┼───────────────────────────────────────────────────
高 | CPU(2) → I/O(7) → CPU(3) → I/O(4) → CPU(3)
低 | CPU(2) → I/O(3) → CPU(2) → I/O(2) → CPU(3)- ア19
- イ20
- ウ21
- エ22
答えと解説を見る
✓ これが正解エ22
解説
優先度の低いタスクが待たされ二十二ミリ秒です。
CPU も入出力装置も同時に二つの仕事を受け持てませんので、タイムチャートを書いて、どちらの装置がいつ空くかを追います。優先度の高いタスクが先に CPU を使い、二ミリ秒で入出力へ移ります。低いほうはそこで CPU を使えますが、続けて入出力へ進もうとした時点では、入出力装置を高いほうが七ミリ秒使っている最中ですので待たされます。以降も、入出力装置の空きを待つ場面がもう一度あり、最後は CPU を高いほうに取られて待つ場面が生じます。高いほうは単独実行と同じ十九ミリ秒で終わり、低いほうはそのあとに残りの三ミリ秒を実行しますので、全体が終わるのは二十二ミリ秒です。低いほうの実働十二ミリ秒に待ち時間の合計十ミリ秒を足しても同じ値になり、検算になります。優先度が効くのは CPU の取り合いで、入出力装置は先に使い始めたほうが持ち続けます。
ほかの選択肢はなぜ違うのか
- ア19:優先度の高いタスクを単独で実行した場合の合計と同じ値です。低いほうの処理がすべて高いほうの空き時間に収まった場合に当たりますが、実際には装置の取り合いで待ちが生じます。
- イ20:四度ある待ちのうち、二ミリ秒ぶんの待ちを数え落とすと、この値になります。低いほうが二度目の入出力に入りたい時点では、その装置がまだふさがっており、空くまで始められません。
- ウ21:低いほうが最後に CPU の空きを待つ一ミリ秒ぶんを落とすと、この値になります。優先度の低いタスクは、高いほうが CPU を使い終えるまで最後の処理に入れません。
出典:平成24年度 春期 応用情報技術者試験 午前 問20
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)