プリエンプションとは?ぷりえんぷしょん
プリエンプションとは、OSがタイマ割込みや優先度の判定を契機に、実行中のタスクからCPUを強制的に取り上げて別のタスクへ切り替えること。タスクが自発的に譲るのを待たないため、高優先度の処理がいつまでに走り出せるかを設計できる。反面、切替え点がコードのほぼどこにでも入り得るので、共有データは排他制御なしでは容易に壊れる。
最終更新:2026-10-06
この語が出る過去問を解く →背景
初期の協調的マルチタスクは、各タスクが区切りのよいところで自らCPUを返す前提で成り立っていた。1つのタスクが長い計算やループに入っただけで画面ごと固まるため、応答性を仕組みとして保証できない。実行権をOS側が握り返せるようにしたのがプリエンプションで、以後は「いつ切り替わるか分からない」ことを前提に共有資源を守る設計が必要になった。
具体例
LinuxのCFSはタイムスライスを使い切ったプロセスからCPUを取り上げ、待ち時間の短いプロセスへ回す。組込み側ではFreeRTOSやμITRON系のカーネルが優先度ベースのプリエンプティブ方式を採り、センサ割込みで起床した高優先度タスクが計算中の低優先度タスクを押しのけて直ちに走る。どちらも切替えの契機がタスク側ではなくカーネル側にある。
試験での引っ掛け
自発的に譲るまで切り替わらないノンプリエンプティブ方式との対比が定番で、後者は排他制御が楽になる代わりに応答時間の上限を保証できない。プリエンプティブだから速いのではなく、切替えのたびにコンテキスト保存の負荷が乗るため、スループットはむしろ下がり得る。低優先度タスクが資源を握ったまま中優先度に押しのけられる優先度逆転も、この方式に固有の落とし穴として問われる。
関連用語
出た過去問
出典:平成29年度 秋期 応用情報技術者試験 午前 問16(IPA)
リアルタイムOSにおいて、実行中のタスクがプリエンプションによって遷移する状態はどれか。
正解:実行可能状態
要点:プリエンプトされたタスクは実行可能状態へ戻る
プリエンプションは、より優先度の高いタスクの発生やタイムクォンタムの満了によって、実行中のタスクからCPUを強制的に取り上げることをいう。取り上げられたタスク自体は入出力などの事象を待っているわけではなく、CPUの再割当てさえあれば続行できるので、実行可能状態へ遷移する。
出典:平成30年度 秋期 応用情報技術者試験 午前 問17(IPA)
プリエンプション方式のタスクスケジューリングにおいて,タスクBの実行中にプリエンプションが発生する契機となるのはどれか。ここで,タスクの優先度は,タスクAが最も…
正解:タスクAが実行可能状態になった。
要点:プリエンプションは高優先度タスクの実行可能化で発生する。
プリエンプションは、実行中のタスクよりも優先度の高いタスクが実行可能状態になったときに、OSが強制的にCPUを取り上げて切り替える動作である。ここではタスクAだけがタスクBより優先度が高いので、Aが実行可能になった時点でBは中断される。同順位や低順位のタスクが実行可能になっても、実行中のタスクは横取りされない。
出典:令和3年度 春期 応用情報技術者試験 午前 問17(IPA)
リアルタイムOSにおいて、実行中のタスクがプリエンプションによって遷移する状態はどれか。
正解:実行可能状態
要点:プリエンプションで実行中タスクは実行可能状態に戻る
プリエンプションは、より優先度の高いタスクの出現やタイムクォンタムの満了によって、実行中のタスクからCPUを強制的に取り上げることをいう。取り上げられたタスクは資源待ちに入るわけではなく、CPUさえ割り当てられればすぐ動ける実行可能状態に戻る。
出典:令和7年度 春期 応用情報技術者試験 午前 問14(IPA)
リアルタイムOSにおいて,実行中のタスクがプリエンプションによって遷移する状態はどれか。
正解:実行可能状態
要点:プリエンプションされたタスクは待ちではなく実行可能状態に戻る
プリエンプションは、より優先度の高いタスクの発生などによって、実行中のタスクからCPUを強制的に取り上げる制御である。取り上げられたタスク自身は資源待ちに入ったわけではなく、CPUさえ割り当てられればすぐ動けるので、実行可能状態(レディ状態)に戻る。待ち状態へ移るのは入出力完了やセマフォ獲得など、自ら資源を待つ場合である。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。