平成19年 秋期 ソフトウェア開発技術者 午前 問26

三つのタスクA〜Cの優先度と、各タスクを単独で実行した場合のCPUと入出力装置(I/O)の動作順序と処理時間は、表のとおりである。
A〜Cが同時に実行可能状態になって3ミリ秒経過後から7ミリ秒間のスケジューリング状況を表したものはどれか。
ここで、I/Oは競合せず、OSのオーバヘッドは考慮しないものとする。
また、表の( )の数字は処理時間を表すものとし、解答群の中の“待ち”はタスクが実行可能状態にあり、CPUの割り当て待ちであることを意味する。

タスク 優先度 単独実行時の動作順序と処理時間(ミリ秒)
A CPU(2) → I/O(2) → CPU(2)
B CPU(3) → I/O(5) → CPU(2)
C CPU(2) → I/O(2) → CPU(3)

 ア  
 イ  
 ウ  
 エ  


答え ウ


解説
A〜Cのタスクが実行可能状態になってからの、スケジューリング状態を考える。

  • 時間0で、タスクA、B、Cが実行可能状態になり、優先度の最も高いタスクAが時間2までCPUを使用する。
  • 時間2で、タスクAはI/Oの入出力処理に移行し、CPUが空くのでタスクB、Cで優先度の高いタスクBがCPUを使用する。
  • 時間4で、タスクAはI/Oの入出力処理が完了し、タスクBからCPUを横取りしてCPUを使用する。(プリエンプション、タスクBは処理を中断)
  • 時間6で、タスクAは処理を完了し、CPUが空くので、タスクB、Cで優先度の高いタスクBがCPUを使用する(処理を再開)。
  • 時間7で、タスクBはI/Oの入出力処理に移行し、CPUが空くのでタスクCがCPUを使用する。
  • 時間9で、タスクCはI/Oの入出力処理に移行する。
    ここで、タスクA、B、CでI/Oは競合しないので、タスクB、Cは同時にI/Oの入出力処理可能である。
これを図にすると下のようになり、この図の時間3からと同じなのはウである。


キーワード
・タスク

キーワードの解説
  • タスク
    OSから見た処理の単位で、通常タスクは並行して動作する。
    タスク優先度とは、2つのタスクが競合した場合にどちらを優先して動作させるかの順番で、優先度が高いタスクが実行可能になると、OSは優先度の低いタスクは処理を中断し、優先度の高いタスクを実行させる。これを、プリエンプション(横取り)という。
    タスク優先度とプリエンプションありのタスク構成の場合、設計をしっかりしておかないと優先度の低いタスクが動作せずシステムが動かなくなることがあるので注意が必要である。

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

戻る 一覧へ 次へ