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

三つのタスクA〜Cを同時に実行させた場合の途中のスケジュール状況が次のとおりであるとき、各タスクの優先度の関係を示したものはどれか。
ここで、“待ち”は、タスクが実行可能状態にあり、CPUの割当て待ちであることを意味する。
また、X > Yは、Xの方がYよりも優先度が高いことを表すものとする。

[タスクの実行途中のスケジュール状況]

 ア  A > B > C  イ  B > C > A  ウ  C > A > B  エ  C > B > A


答え イ


解説
問題の図のタスクの切り替えが発生するごとに番号を振ります。

@  タスクAが実行状態で、タスクBとタスクCは待ち状態です。
A  タスクCが実行状態になって、タスクAが実行可能状態に遷移しているので、タスクの優先度としては、タスクC > タスクAです。
B  タスクBが実行状態になって、タスクCが実行可能状態に遷移しているので、タスクの優先度としては、タスクB > タスクCです。
C  タスクBが待ち状態に遷移し、実行可能状態のタスクAとタスクCから、タスクCが実行状態になっているので、タスクの優先度としては、タスクC > タスクAです。
D  タスクCが待ち状態に遷移し、実行可能状態のタスクAが実行状態になっています。
上記より、タスクの優先度はタスクB > タスクC > タスクA(ア)になっているのがわかります。


キーワード
・タスクの優先度と状態

キーワードの解説
  • タスク優先度と状態
    複数のタスクが動作するソフトウェアでは、タスクの処理内容によって、他のタスクの処理を一時的に止めても処理を行う必要がある。
    (例えば、電話の交換機で119番や110番の緊急番号を受けたときなど)
    情報処理技術者試験で出題される問題では、タスクには3つの状態があり、実行状態(RUN)、実行可能状態(READY)、待ち状態(WAIT)です。(問題の“待ち”は実行可能状態です。紛らわしいですね。)
    • 実行状態は、タスクが動作している状態。
    • 実行可能状態は、CPUが空くのを待っている状態。
    • 待ち状態は、タスクが動作するための条件待ちの状態。
    あるタスクが実行可能状態になったときに、実行状態のタスクの優先度が低い場合、実行中のタスクを停めて(実行可能状態にする)、優先度の高いタスクを実行状態にすることをプリエンプション(preemption、横取り)といいます。

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

戻る 一覧へ 次へ