ノンプリエンプティブ方式のタスクの状態遷移

タスクスケジューリング方式のうち,ノンプリエンプティブ(Non-preemptive)方式は,実行状態にあるタスクが自発的に CPU を手放す(処理の完了や入出力待ちによる自発的中断・システムコール発行など)まで,OS が強制的に CPU を奪い取って他のタスクへ切り替える(プリエンプトする)ことがない方式です。したがって正解はイとなります。 各選択肢の解説は以下のとおりです。 ノンプリエンプティブ方式ではタスクの優先度を一時的に引き上げてスイッチを防ぐのではなく,もともと OS による強制横取りを行わないスケジューリングポリシーに基づいています。 ノンプリエンプティブ方式ではタスクが自発的に CPU を解放しない限り OS に制御が戻らないため,タスクが無限ループに陥るとシステム全体がハングアップ状態になります(OS が自動検知して安全に切り替えることはできません)。 プリエンプティブ(Preemptive)方式の説明です。高優先度のタスクが実行可能になると,OS が実行中のタスクを強制的に中断して切り替えます。

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

出典令和6年度 春期 応用情報技術者試験 午前 問16
ア
OS は実行中のタスクの優先度を他のタスクよりも上げることによって,実行中のタスクが終了するまでタスクが切り替えられるのを防ぐ。
イ
実行中のタスクが自らの中断を OS に要求することによってだけ,OS は実行中のタスクを中断し,動作可能な他のタスクを実行中に切り替えることができる。
ウ
実行中のタスクが無限ループに陥っていることを OS が検知した場合,OS は実行中のタスクを終了させ,動作可能な他のタスクを実行中に切り替える。
エ
実行中のタスクより優先度が高い動作可能なタスクが実行待ち行列に追加された場合,OS は実行中のタスクを中断し,優先度が高い動作可能なタスクを実行中に切り替える。