応用情報技術者試験 |
2017年度 = 平成29年度・秋期 |
午前 |
問16 |
リアルタイムOSにおいて、実行中のタスクがプリエンプションによって遷移する状態はどれか。
ア 休止状態
| イ 実行可能状態
| ウ 終了状態
| エ 待ち状態
|
イ
プリエンプションは、実行中のタスクよりも優先順位の高いタスクが実行可能状態になった場合、実行中のタスクを中断してその優先順位の高いタスクを実行することです。実行中のタスクは、実行状態から実行可能状態へと遷移します(下図の①です)。
プロセスの状態および状態遷移は、以下のようになります。
■実行(running)
CPUを確保し、プログラムを実行している状態。
■実行可能(ready)
CPUが割り当てられればすぐプログラムを実行できる状態。
■待機(wait)
要求しているリソース、たとえば入出力機器が、空くのを待っているとか、メッセージが到達するのを待っているとか、何らかの待ち状態にあり、CPUを必要としていない状態。
①実行状態から実行可能状態へ
プリエンプションが発生したとき、すなわち、優先度の高いジョブに割り込まれたり、自分に割り当てられた時間すなわちクオンタム(quantum)が終了したとき
②実行可能状態から実行状態へ
CPUスケジューラ(CPU scheduler)すなわちディスパッチャ(dispatcher)によって、CPUを割り当てられたとき
③実行状態から待ち状態へ
プロセスが入出力動作を起動し、その完了を待たなければならなくなったとき、何らかのリソースが必要となり、それが空くのを待たなければならなくなったとき
※他の遷移と異なり、プロセス自らの操作によって生じる
④待ち状態から実行可能状態へ
入出力動作が完了したり、他のプロセスの命令により待ち状態が解除されたとき