優先度付きのタスクと CPU の遊休時間
出典: 平成28年度 秋期 応用情報技術者試験 午前 問17 (IPA)
五つのタスクを単独で実行した場合の CPU と入出力装置(I/O)の動作順序と処理時間は,表のとおりである。優先度“高”のタスクと,優先度“低”のタスクのうち一つだけを同時に実行する。実行を開始してから,両方のタスクの実行が完了するまでの間の CPU の遊休時間が最も短いのは,どの優先度“低”のタスクとの組合せか。ここで,I/O は競合せず,OS のオーバヘッドは考慮しないものとする。
また,表の( )内の数字は処理時間を示すものとする。
| 選択肢 | 優先度 | 単独実行時の動作順序と処理時間(単位 ミリ秒) |
|---|---|---|
| 高 | CPU (3) → I/O (3) → CPU (3) → I/O (3) → CPU (2) | |
| ア | 低 | CPU (2) → I/O (5) → CPU (2) → I/O (2) → CPU (3) |
| イ | 低 | CPU (3) → I/O (2) → CPU (2) → I/O (3) → CPU (2) |
| ウ | 低 | CPU (3) → I/O (2) → CPU (3) → I/O (1) → CPU (4) |
| エ | 低 | CPU (3) → I/O (4) → CPU (2) → I/O (5) → CPU (2) |
- ア 優先度“低”の行 ア のタスク
- イ 優先度“低”の行 イ のタスク
- ウ 優先度“低”の行 ウ のタスク
- エ 優先度“低”の行 エ のタスク
正解と解説を見る
正解: ウ
- ア: “低” の最初の CPU が 2 ミリ秒で終わり、その後 I/O (5) の間に “高” の I/O と重なって、CPU が空く時間ができます。
- イ: “高” が I/O をしている間に “低” が CPU を使えない時間ができ、CPU の遊休時間が発生します。
- ウ: “高” の I/O の間に “低” がちょうど CPU を使えるので、CPU の遊休時間が 0 になります。正しい答えです。
- エ: “低” の I/O (4) や I/O (5) が長く、“高” も I/O をしている間に CPU が空く時間ができます。
ポイント
優先度 “高” のタスクが CPU を使いたいときは、必ず “高” が先に CPU を使います。“低” は “高” が I/O をしている間に CPU を使います。
ウの “低” タスクと組み合わせると、次のように CPU がずっと使われます。
| 時刻 (ミリ秒) | 0〜3 | 3〜6 | 6〜9 | 9〜12 | 12〜14 | 14〜18 |
|---|---|---|---|---|---|---|
| CPU | 高 | 低 | 高 | 低 | 高 | 低 |
- “低” は 3〜6 に CPU (3)、6〜8 に I/O (2)、9〜12 に CPU (3)、12〜13 に I/O (1)、14〜18 に CPU (4) を行い、CPU の遊休時間は 0 です。