三つのタスク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、横取り)といいます。
もっと、「タスクの優先度」について調べてみよう。
戻る
一覧へ
次へ
|