問14 プリエンプションで移る状態

応用情報​技術者試験 令和7年度 春期 午前、全80問のうちの問14。

出典:令和7年度 春期 応用情報技術者試験 午前 問14

リアルタイム OS において,実行中のタスクがプリエンプションによって遷移する状態はどれか。

  1. ア休止状態
  2. イ実行可能状態
  3. ウ終了状態
  4. エ待ち状態
答えと解説を開く

正解はイです。

リアルタイム OS では、実行中のタスクより優先度の高いタスクが動けるようになると、OS が実行中のタスクを止めて、高い方に CPU を渡します。これがプリエンプション (横取り) です。止められたタスクは、何かを待っているわけではなく、CPU さえ空けばすぐ続きを実行できます。だから実行可能状態に移り、順番が来るのを待ちます。正解はイです。

ほかの選択肢が違う理由

  • ア休止状態は、タスクがまだ起動されていないか、処理を終えて動いていない状態です。プリエンプションで止められたタスクは、続きが残っているので休止状態にはなりません。
  • ウ終了状態は、タスクが処理を最後まで終えた状態です。プリエンプションは途中で CPU を譲らせるだけで、タスクは終わっていません。
  • エ待ち状態は、入出力の完了や時間の経過などを、タスクが自分から待っている状態です。プリエンプションのように外から CPU を取り上げられた場合とは違います。

仕組み

タスクの基本の状態は、実行状態、実行可能状態、待ち状態の 3 つです。実行可能状態のタスクの中から、優先度などで選ばれた 1 つが実行状態になります。

実行状態から待ち状態へは自分で何かを待つとき、実行状態から実行可能状態へは CPU を取り上げられたときに移ります。どちらへ移るかは、止まった理由で決まります。

この問に出る言葉