タスクの状態遷移
プリエンプティブなマルチタスク OS におけるタスクの状態遷移の説明として,適切なものはどれか。
- ア実行状態のタスクが入出力要求を発行すると,入出力が完了するまで実行状態のまま CPU を占有し続ける。
- イ実行状態のタスクが入出力要求を発行すると待ち状態に遷移し,入出力が完了すると実行可能状態に遷移する。
- ウ待ち状態のタスクは,待っている事象が発生すると,他のタスクの状態にかかわらず直ちに実行状態に遷移する。
- エ実行状態のタスクが,より優先度の高いタスクに CPU を横取りされると,待ち状態に遷移する。
正解と解説を見る
正解 イ
この問題の基礎知識
- タスクの基本的な状態は,CPU を使用している実行状態,CPU が割り当てられればすぐに実行できる実行可能状態,入出力の完了などの事象を待っている待ち状態の 3 つである。
- 実行可能状態のタスクの中から 1 つを選んで CPU を割り当て,実行状態にすることをディスパッチといい,OS のディスパッチャが行う。
- 優先度に基づくプリエンプティブ方式では,実行中のタスクより優先度の高いタスクが実行可能になると,OS が実行中のタスクから CPU を取り上げて切り替える(プリエンプション)。
- 状態を判断するときは,そのタスクが CPU さえあれば動けるのか,何かの事象の発生を待っているのかという観点で区別する。
ア実行状態のタスクが入出力要求を発行すると,入出力が完了するまで実行状態のまま CPU を占有し続ける。
入出力の完了を待つ間 CPU を占有し続けると CPU が遊んでしまう。マルチタスク OS では,入出力を要求したタスクは待ち状態に移り,CPU は他の実行可能なタスクに割り当てられる。
イ実行状態のタスクが入出力要求を発行すると待ち状態に遷移し,入出力が完了すると実行可能状態に遷移する。正解
入出力要求を出したタスクは待ち状態になり,入出力完了の割込みなどで事象が発生すると実行可能状態に移る。その後,ディスパッチャによって CPU が割り当てられると実行状態になる。
ウ待ち状態のタスクは,待っている事象が発生すると,他のタスクの状態にかかわらず直ちに実行状態に遷移する。
待ち状態のタスクは,事象が発生するといったん実行可能状態に遷移し,ディスパッチャに選ばれてから実行状態になる。待ち状態から実行状態へ直接遷移するわけではない。
エ実行状態のタスクが,より優先度の高いタスクに CPU を横取りされると,待ち状態に遷移する。
プリエンプションによって CPU を横取りされたタスクは,事象を待っているわけではなく,すぐにでも実行できるので実行可能状態に遷移する。待ち状態に移るのは入出力完了などの事象を待つ場合である。
検証用の出典レビュー済み
IPA 応用情報技術者試験(レベル 4)シラバス照合の根拠(1 件)
- 出題範囲の確認のみ(用語例に実行可能状態,実行状態,待ち状態)。各状態間の遷移条件の記述はない
タスクとジョブステップ,スレッドとの関係,タスクの生成から実行,消滅までの状態遷移,ディスパッチャの役割を理解する。
IPA 応用情報技術者試験シラバス Ver.7.2 · 中分類5 ソフトウェア 1. オペレーティングシステム (4) ① タスクと状態遷移(新しいタブで開きます)
シラバスは状態名を列挙するだけで遷移条件(入出力要求で待ち状態,事象発生で実行可能状態,横取りで実行可能状態)を説明していない。遷移条件を記述した読める一次資料(OS の教科書や μITRON 仕様は接続先外)が見つからなかった。2 回目の照合でも,接続できるホスト(NIST,OMG,UEFI,IPA 等)にタスクの状態遷移条件を説明した資料を見つけられなかった。 独立レビュアー 3 名が正解と解説を伏せて解答し、3 名とも正解と一致(2026-11-07)。重大な指摘はなく、軽微な指摘は反映済み。