プリエンプションとは?ぷりえんぷしょん
プリエンプションとは、実行中のタスクより高い優先度のタスクが実行可能になった時点で、実行中のタスクからCPUを取り上げて切り替える方式。高優先度の処理が待たされないため応答性が高い反面、切替えがどの命令の直後で起きるか分からず、共有データの排他制御が必須になる。
最終更新:2026-10-06
この語が出る過去問を解く →背景
実時間システムでは、締切を持つ処理が「いま走っている処理が終わるまで」待たされること自体が破綻になる。譲ってもらうのを待つのではなく取り上げる、という方式はこの要求から出てきた。得たものは最悪応答時間の保証可能性で、失ったものはコードの実行が中断されない前提である。共有変数の読み書きが途中で割り込まれうるという事実が、ミューテックスやセマフォ、割込み禁止区間といった仕掛けを設計上必須にした。
具体例
TOPPERS/ASPをはじめとするμITRON系RTOSは優先度ベースのプリエンプティブ方式を採り、センサ入力の割込みで起床した高優先度タスクが、実行中の低優先度な計算処理を押しのけて直ちに走り出す。計算処理は取り上げられた地点から後で再開される。
試験での引っ掛け
タスクが自発的に譲るまで切り替わらないのがノンプリエンプティブ方式で、排他制御は簡単になるが応答性は落ちる、という対比で問われる。ラウンドロビンは同一優先度内での順番の決め方であって、プリエンプションの有無とは別の軸である点も混同しやすい。優先度が同じタスク同士は原則として押しのけ合わない。
関連用語
出た過去問
出典:令和5年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問6(IPA)
優先度に基づくプリエンプティブスケジューリングのリアルタイムOSを使用した組込みシステムにおいて、入力装置及び出力装置にアクセスする二つのタスクX,Yがある。X…
正解:処理B
要点:取得順序が逆の2つのセマフォを片方だけ持つ区間が危険
デッドロックはXとYが互いに相手の持つセマフォを待ち合うときに起きる。Xはiを取得した直後、まだoを取得していない状態にあるときプリエンプトされると危険で、これが処理Bの区間である。この状態でYが走るとYはoを取得できるがiが取れずに待ちに入り、実行状態に戻ったXもoが取れずに待つため、双方が永久に進めなくなる。
出典:令和7年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問6(IPA)
優先度に基づくプリエンプティブスケジューリングのリアルタイムOSを使用した組込みシステムにおいて、入力装置及び出力装置にアクセスする二つのタスクX,Yがある。X…
正解:処理B
要点:取得順序が逆のロックを片方だけ持つ区間で詰まる
デッドロックは、XとYが互いに相手の保持するセマフォを待ち合ったときに起きる。Xはiを取得した直後でまだoを取得していない区間、すなわち処理Bでプリエンプトされると危険で、そこでYが動くとYはoを取得できるがiが取れずに待ちに入る。実行状態へ戻ったXもoが取れずに待つため、双方が永久に進めなくなる。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。