平成26年 春期 エンベデッドシステムスペシャリスト 午前II 問9

CPU時間を多く必要とするタスクAと、入出力処理が多くCPU時間をほとんど必要としないタスクBで構成されているシステムがある。
このシステムのスループットを高くする方法として、適切なものはどれか。

 ア  タスクAとタスクBの優先度を同じにして、一定時間間隔ごとに処理を切り替えることによって平等に処理する。
 イ  タスクAとタスクBの優先度を同じにして、先に開始したタスクが終了後に別のタスクを処理する。
 ウ  タスクAの優先度を高くして、タスクAを優先して処理する。
 エ  タスクBの優先度を高くして、タスクBを優先して処理する。


答え エ


解説
タスクAはCPU時間を多く必要とし、タスクBはCPU時間をほとんど必要としないので、タスクBがCPUを使いたいときに優先的に使用し、それ以外の時はタスクAがCPUを使えるようにすると、スループットが高くなるので、タスクBの優先度を高くして、タスクBを優先して処理する(エ)になります。


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

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

タスク優先度

戻る 一覧へ 次へ