平成30年 春期 応用情報技術者 午前 問17

三つのタスク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


答え ウ


解説
タスクCは優先順位が最も低いのでタスクA、タスクBが実行可能状態になるとタスクCが実行中でも処理が中断され実行可能状態になり、他のタスクの処理が終わるのを待たされる。
そのため、三つのタスクが同時に実行可能状態になると、まず優先度が高のタスクAが処理され、次に優先度が中のタスクBが処理され、その後でタスクCが処理されるため、タスクCは実行可能状態が4ミリ秒発生する。
次に、タスクCのI/O処理が終わり実行可能状態になるとタスクAとタスクBもI/O処理が終わり実行可能状態になっているので、タスクA、タスクBの処理が優先され、タスクBは実行可能状態のまま6ミリ秒待たされるので、合計で10ミリ秒(ウ)である。
 


キーワード
・タスクの状態

キーワードの解説
  • タスクの状態
    マルチタスクのシステムにおいて、タスクの状態としては待ち状態、実行可能状態、実行状態がある。
    • 待ち状態
      タスクが実行するための条件が整うのを待っている状態。
    • 実行可能状態
      タスクが実行する条件が整い、実行状態の他のタスクの処理が終了するのを待っている状態。
    • 実行状態
      タスクが実行されている状態、実行状態になるタスクは最大で一つである。
    また、プリエンプション方式の場合は、実行可能状態になったタスクより、実行状態のタスクの優先度が低い場合、実行状態の低いタスクの処理を中断し、優先度の高いタスクを実行する。
    プリエンプションが発生しない場合、タスクの状態遷移は「待ち状態→実行可能状態→実行状態→待ち状態」になる。

もっと、「タスクの状態」について調べてみよう。

戻る 一覧へ 次へ