「プリエンプティブ方式とノンプリエンプティブ方式って何が違うの?」
応用情報技術者試験でもOS分野で超頻出ですが、
- CPUを奪う?
- タスク切替?
- どっちが効率良い?
で混乱する人がかなり多いテーマです。
この記事では、
- プリエンプティブ方式とは?
- ノンプリエンプティブ方式とは?
- 違い
- 試験での頻出ポイント
を分かりやすく解説します!
まず結論
プリエンプティブ方式
「OSが強制的にCPUを切り替える」
ノンプリエンプティブ方式
「自分からCPUを返すまで使い続ける」
これが最大の違い!
超簡単にいうと
| 方式 | イメージ |
|---|---|
| プリエンプティブ | 強制交代 |
| ノンプリエンプティブ | 自主交代 |
レストランで理解しよう
かなり分かりやすい👇
プリエンプティブ
店長が:
「次の人交代!」
と指示。
ノンプリエンプティブ
店員が:
「終わりました」
と言うまで続ける。
なぜ必要?
CPUでは:
複数プログラム
を同時実行したい。
でもCPUは?
基本:
一度に1つしか実行できない
そこで
タスク切替
を行う!
プリエンプティブ方式とは?
超頻出!
特徴
OSが:
強制的にCPUを奪う
タイマ割込み
超重要!
一定時間ごとに:
タスク切替
する。
イメージ
A実行
↓
時間切れ
↓
B実行
メリット
- 応答性高い
- 公平性高い
- OS安定
デメリット
- 切替オーバーヘッド
- 制御複雑
オーバーヘッドとは?
切替コスト
コンテキストスイッチ
超頻出!
意味
実行状態保存・復元
保存内容
- レジスタ
- プログラムカウンタ
など。
ノンプリエンプティブ方式とは?
超重要!
特徴
自発的にCPU返却
タスク終了や:
I/O待ち
で切替。
イメージ
A終了まで実行
↓
B開始
メリット
- 実装簡単
- オーバーヘッド少
デメリット
超重要!
問題
CPUを長時間占有すると:
他タスク停止
応答悪化
発生しやすい。
比較
| 比較 | プリエンプティブ | ノンプリエンプティブ |
|---|---|---|
| CPU切替 | OS強制 | 自主返却 |
| 応答性 | 高い | 低い |
| 制御 | 複雑 | 簡単 |
| 公平性 | 高い | 低い |
現代OSは?
ほぼ:
プリエンプティブ
採用。
理由
- マルチタスク向き
- GUI向き
- 応答性重要
リアルタイムOS
発展知識!
特徴
厳密な時間制御
優先度制御
超頻出!
高優先度タスクへ:
CPU優先配分
する。
スケジューリング
応用情報で超頻出!
意味
CPU割当管理
代表例
- ラウンドロビン
- 優先度順
ラウンドロビン
一定時間交代
プリエンプティブで有名。
応用情報で超頻出
かなり狙われる👇
- プリエンプティブ
- ノンプリエンプティブ
- タイマ割込み
- コンテキストスイッチ
- スケジューリング
よくあるひっかけ
「ノンプリエンプティブはOSが強制停止」
→ 違う!
強制停止は:
プリエンプティブ
1分で復習!
プリエンプティブ
OS強制切替
ノンプリエンプティブ
自主返却
プリエンプティブ特徴
- 応答性高
- 公平
ノンプリエンプティブ特徴
- 単純
- 占有問題あり
練習問題
問題
プリエンプティブ方式の特徴として最も適切なものはどれか。
ア
タスクが自発的にCPUを返却する
イ
OSが強制的にCPU使用権を切り替える
ウ
CPU切替が発生しない
エ
必ず単一タスクで動作する
解答
正解:イ
解説
プリエンプティブ方式では、OSがタイマ割込みなどを利用してCPU使用権を強制的に切り替えます。
まとめ
プリエンプティブ方式とは
「OS強制交代」
ノンプリエンプティブ方式とは
「自主交代」
超重要
- タイマ割込み
- コンテキストスイッチ
- スケジューリング
- ラウンドロビン
まずは、
「プリエンプティブ=強制」
「ノンプリ=自主」
このイメージを持つとかなり理解しやすくなります!
知識に自信ができた方は、今度は自身のキャリアアップに向けて準備してみませんか?

未経験から、ITエンジニアへ。
「IT業界に興味はあるけれど、自分にできるか不安」「何から始めればいいのか分からない」そんな方のために、Tech GO は未経験からのIT転職を専門的にサポートします。求人を紹介するだけではなく、あなたの強みを整理し、応募準備から入社後の成…
まずは無料でキャリア相談

コメント