ノンプリエンプティブ方式のタスクの状態遷移に関する記述として、適切なものはどれか。
| ア | OSは実行中のタスクの優先度を他のタスクよりも上げることによって、実行中のタスクが終了するまでタスクが切り替えられるのを防ぐ。 |
| イ | 実行中のタスクが自ら中断をOSに要求することによってだけ、OS[は「実行中のタスクを中断し、動作可能な他のタスクを実行中に切り替えることができる。 |
| ウ | 実行中のタスクが無限ループに陥っていることをOSが検知した場合、OSは実行中のタスクを終了させ、動作可能な他のタスクを実行中に切り替える。 |
| エ | 実行中のたすきより優先度が高い動作可能なタスクが実行待ち行列に追加された場合、OSは実行中のタスクを中断し、優先度が高い動作可能jなタスクを実行中に切り替える。 |
答え イ
【解説】
| ア | OSは実行中のタスクの優先度を他のタスクよりも上げることによって、実行中のタスクが終了するまでタスクが切り替えられるのを防ぐ機能を持ったOS(Linuxのreniceなど)はあります。(×) |
| イ | 実行中のタスクが自ら中断をOSに要求することによってだけ、OS[は「実行中のタスクを中断し、動作可能な他のタスクを実行中に切り替えることができるのは、ノンプリエンプティブ方式です。(〇) |
| ウ | 実行中のタスクが無限ループに陥っていることをOSが検知した場合、OSは実行中のタスクを終了させ、動作可能な他のタスクを実行中に切り替えるような機能を持ったゲームエンジンがあります。(×) |
| エ | 実行中のたすきより優先度が高い動作可能なタスクが実行待ち行列に追加された場合、OSは実行中のタスクを中断し、優先度が高い動作可能jなタスクを実行中に切り替えるのは、プリエンプティブ方式です。(×) |
【キーワード】
・スケジューリング