優先順位方式のタスクの待ち時間
出典: 平成30年度 春期 応用情報技術者試験 午前 問17 (IPA)
三つのタスク A~C の優先度と各タスクを単独で実行した場合の CPU と入出力(I/O)装置の動作順序と処理時間は,表のとおりである。優先順位方式のタスクスケジューリングを行う OS の下で,三つのタスクが同時に実行可能状態になってから,タスク C が終了するまでに,タスク C が実行可能状態にある時間は延べ何ミリ秒か。ここで,I/O は競合せず,OS のオーバヘッドは考慮しないものとする。また,表中の( )内の数字は処理時間を示すものとする。
| タスク | 優先度 | 単独実行時の動作順序と処理時間(ミリ秒) |
|---|---|---|
| A | 高 | CPU(2) → I/O(6) → CPU(4) |
| B | 中 | CPU(2) → I/O(4) → CPU(2) |
| C | 低 | CPU(2) → I/O(2) → CPU(3) |
- ア 6
- イ 8
- ウ 10
- エ 12
正解と解説を見る
正解: ウ
- ア: 6 は 8〜14 ミリ秒の待ち時間だけです。最初の 0〜4 ミリ秒の待ちも加えます。
- イ: 8 になる数え方はありません。0〜4 と 8〜14 の待ちを合わせると 10 ミリ秒です。
- ウ: C が CPU を待っているのは 0〜4 ミリ秒と 8〜14 ミリ秒で、合計 10 ミリ秒なので、正しい答えです。
- エ: 12 は待ち時間に I/O の 2 ミリ秒を加えたなどの値です。I/O 中は実行可能状態ではありません。
ポイント
優先度の高い順に CPU を使います (I/O は競合しない)。
| 時刻 (ミリ秒) | CPU | C の状態 |
|---|---|---|
| 0〜2 | A | 実行可能 (待ち) |
| 2〜4 | B | 実行可能 (待ち) |
| 4〜6 | C | 実行中 |
| 6〜8 | (空き) | I/O |
| 8〜12 | A | 実行可能 (待ち) |
| 12〜14 | B | 実行可能 (待ち) |
| 14〜17 | C | 実行中 |
C が実行可能状態 (CPU を待っている状態) なのは 0〜4 の 4 ミリ秒と 8〜14 の 6 ミリ秒で、合計 10 ミリ秒 です。