応用情報技術者試験ナビ ロゴ 応用情報技術者試験ナビ
本日は試験日

応用情報技術者試験 令和6年春 午前問16 解説付き過去問

問題

ノンプリエンプティブ方式のタスクの状態遷移に関する記述として、適切なものはどれか。

正解

解説

ノンプリエンプティブ方式とは、タスクのスケジューリングにおいて、実行中のタスクが自発的にCPUの使用を放棄するまで、OSがそのタスクの実行を強制的に中断しない方式である。 この方式では、タスクの切り替えは明示的な要求によってのみ行われるため、OSが自動的にタスクを中断することはない。

各選択肢の内容を確認する。

  • OSは実行中のタスクの優先度を他のタスクよりも上げることによって、実行中のタスクが終了するまでタスクが切り替えられるのを防ぐ
    ノンプリエンプティブ方式では、OSがタスクの優先度を変更してタスクの切り替えを防ぐような仕組みはない。 タスクの切り替えはあくまでタスク自身の動作に依存するため、この記述は適切ではない。

  • 実行中のタスクが自らの中断をOSに要求することによってだけ、OSは実行中のタスクを中断し、動作可能な他のタスクを実行中に切り替えることができる
    ノンプリエンプティブ方式では、タスクの切り替えはタスク自身の制御下にある。 つまり、実行中のタスクが自らの処理を終了するか、中断をOSに明示的に要求しない限り、タスクの切り替えは行われない。 この記述はノンプリエンプティブ方式の特徴を正しく表しているため、適切である。

  • 実行中のタスクが無限ループに陥っていることをOSが検知した場合、OSは実行中のタスクを終了させ、動作可能な他のタスクを実行中に切り替える
    ノンプリエンプティブ方式では、OSがタスクの状態を監視し、強制終了することは基本的に行われない。 無限ループに陥った場合も、OSが強制的にタスクを終了させることはなく、タスク自身が適切に終了処理を実装していなければ、システムが応答しなくなる可能性がある。 この記述は適切ではない。

  • 実行中のタスクより優先度が高い動作可能なタスクが実行待ち行列に追加された場合、OSは実行中のタスクを中断し、優先度が高い動作可能なタスクを実行中に切り替える
    この動作はプリエンプティブ方式の特徴である。 ノンプリエンプティブ方式では、優先度が高いタスクが追加されても、現在実行中のタスクが終了または中断しない限り、タスクの切り替えは行われない。 したがって、この記述は適切ではない。

以上の比較から、ノンプリエンプティブ方式のタスクの状態遷移に関する記述として適切なのは、「実行中のタスクが自らの中断をOSに要求することによってだけ、OSは実行中のタスクを中断し、動作可能な他のタスクを実行中に切り替える。」である。