五つのタスクA〜Eの優先度と、タスクを単独で実行した場合のCPUと入出力装置(I/O)の動作順序と処理時間は、表のとおりである。
優先度“高”のタスクAとB〜Eのどのタスクを組み合わせれば、組み合わせたタスクが同時に実行を開始してから、両方のタスクが終了するまでの間のCPUの遊休時間をゼロにできるか。
ここで、I/Oは競合せず、OSのオーバヘッドは無視できるものとする。
また、表の( )内の数字は処理時間を表すものとする。
|
タスク |
優先度 |
単独実行時の動作順序と処理時間(ミリ秒) |
A |
高 |
CPU(3) → I/O(3) → CPU(3) → I/O(3) → CPU(2) |
ア |
B |
低 |
CPU(2) → I/O(5) → CPU(2) → I/O(2) → CPU(3) |
イ |
C |
低 |
CPU(3) → I/O(2) → CPU(2) → I/O(3) → CPU(2) |
ウ |
D |
低 |
CPU(3) → I/O(2) → CPU(3) → I/O(1) → CPU(4) |
エ |
E |
低 |
CPU(3) → I/O(4) → CPU(2) → I/O(5) → CPU(2) |
答え ウ
【解説】
タスクAとタスクB〜Eが同時に実行を開始したときの処理状態を図にする。
はタスクAの処理、はタスクB〜Eの処理、はCPU遊休時間であり、I/Oは競合しないので、各タスクは別のI/Oにアクセスすると考える。
ア |
タスクAとタスクB
|
イ |
タスクAとタスクC
|
ウ |
タスクAとタスクD
|
エ |
タスクAとタスクE
|
したがって、CPUの遊休時間がゼロなのは タスクAとタスクD(ウ)である。
【キーワード】
・タスクの状態
【キーワードの解説】
- タスクの状態
マルチタスクのシステムにおいて、タスクの状態としては待ち状態、実行可能状態、実行状態がある。
- 待ち状態
タスクが実行するための条件が整うのを待っている状態。
- 実行可能状態
タスクが実行する条件が整い、実行状態の他のタスクの処理が終了するのを待っている状態。
- 実行状態
タスクが実行されている状態。実行状態になるタスクは最大で一つである。
また、プリエンプション方式の場合は、実行可能状態になったタスクより、実行状態のタスクの優先度が低い場合、実行状態の低いタスクの処理を中断し、優先度の高いタスクを実行する。
プリエンプションが発生しない場合、タスクの状態遷移は「待ち状態→実行可能状態→実行状態→待ち状態」になる。
もっと、「タスク優先度」について調べてみよう。
戻る
一覧へ
次へ
|