平成25年度 春期 午前 問18
ソフトウェア
CPUの遊休時間
三つのタスクの優先度と,各タスクを単独で実行した場合の CPU と入出力装置(I/O)の動作順序と処理時間は,表のとおりである。三つのタスクが同時に実行可能状態になってから,全てのタスクの実行が終了するまでの,CPU の遊休時間は何ミリ秒か。ここで,I/O は競合せず,OS のオーバヘッドは考慮しないものとする。また,表の( )内の数字は処理時間を示す。
〔表〕
| 優先度 | 単独実行時の動作順序と処理時間(単位 ミリ秒) |
|---|---|
| 高 | CPU(3) → I/O(5) → CPU(2) |
| 中 | CPU(2) → I/O(6) → CPU(2) |
| 低 | CPU(1) → I/O(5) → CPU(1) |
- ア1
- イ2
- ウ3
- エ4
答えと解説を見る
✓ これが正解ウ3
解説
CPUが空くのは2ミリ秒と1ミリ秒で合計3です。
この種の問は、時間の線を1本引いて、CPUが誰にも使われていない区間を数えるのが確実です。CPUは優先度の高いタスクが先に使い、入出力は競合しないので同時に進みます。開始から追うと、まず優先度の高いものが3ミリ秒使い、続いて中くらいのものが2ミリ秒、低いものが1ミリ秒使って、6ミリ秒の時点で三つとも入出力に移ります。ここから、優先度の高いものの入出力が終わる8ミリ秒までCPUは空きます。8ミリ秒から2ミリ秒使って優先度の高いものが終わると、残る二つの入出力はどちらも11ミリ秒に終わるので、10ミリ秒から1ミリ秒だけまた空きます。合計は3ミリ秒です。全体が14ミリ秒でCPUが働いたのが11ミリ秒という数え方でも同じ値になり、2通りで確かめられます。
ほかの選択肢はなぜ違うのか
- ア1:優先度の高いタスクが終わったあとに現れる空きだけを数えた値です。三つとも入出力に入っている前半の空きを見落とすと、この長さにとどまります。
- イ2:前半に三つとも入出力へ移っているあいだの空きだけを数えた値です。そのあとにもう一度空く区間があるので、合計はこれより長くなります。
- エ4:線を引いて追うと空いている区間は二つだけで、合わせても3ミリ秒までにしかならず、この値には届きません。入出力が競合しないという条件を使わずに並べると、空きを長く見積もることになります。
出典:平成25年度 春期 基本情報技術者試験 午前 問18(改変:原典の図表をテキストに書き起こした)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)