三つのタスクの優先度と、各タスクを単独で実行した場合の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 |
答え ウ
【解説】
複数の優先度のタスクが同時に動作する場合、優先度が高いタスクがCPUとI/O装置を優先的に使い、優先度が低いタスクは優先度の高いタスクの空き時間に資源を使用します。
問題の表の時間の経過とCPUとI/O装置の使用状況を図にすると次のようになります。
したがって、三つのタスクが同時に実行可能状態になってから、全てのタスクの実行が終了するまでの、CPUの遊休時間は処理を開始してから6ミリ秒から8ミリ秒の2ミリ秒と、10ミリ秒から11ミリ秒の1ミリで合計3ミリ秒(ウ)です。
【キーワード】
・タスクの状態