Skip to the content.

最終更新日:2026年7月25日

まず結論

タスクスケジューリング方式とは、OSが、どのタスクにCPUを使わせるかを決める方法です。

基本情報技術者試験では、まず次のように切り分けます。

OSが実行中タスクを途中で止められる → プリエンプティブ
タスクがCPUを手放すまで待つ       → ノンプリエンプティブ

「実行中のタスクが、自分で待ち状態に移るか終了するまで、他のタスクを実行できない」と出たら、ノンプリエンプティブ と判断します。

直感的な説明

CPUは、同時にたくさんのタスクを実行しているように見えます。

でも実際には、CPUを使うタスクを短い時間で切り替えながら処理しています。

ここで大事なのは、誰の判断でタスクを切り替えるか です。

OSの判断で切り替える
→ プリエンプティブ

プログラム側がCPUを手放すまで待つ
→ ノンプリエンプティブ

たとえるなら、プリエンプティブは先生が時間を見て発表者を交代させるイメージです。

ノンプリエンプティブは、発表者が話し終わるまで、次の人に交代できないイメージです。

英語では、preemptive は「先に割り込む」、non-preemptive は「割り込まない」という感覚です。

定義・仕組み

タスクスケジューリングでは、OSが実行可能状態のタスクの中から、次に実行するタスクを選びます。

代表的な用語を整理すると、次のようになります。

用語 判断のポイント
プリエンプティブ OSが実行中タスクを中断して、別のタスクに切り替えられる
ノンプリエンプティブ 実行中タスクがCPUを手放すまで、他のタスクへ切り替えない
ラウンドロビン方式 一定時間ごとに順番にCPUを割り当てる
優先順位方式 優先度が高いタスクを先に実行する
残余処理時間順方式 残りの処理時間が短いタスクを先に実行する

タスクの状態は、ざっくり次のように考えると分かりやすいです。

実行可能状態:CPUを使える順番を待っている
実行状態    :今CPUを使っている
待ち状態    :入出力などを待っていて、すぐには実行できない

ノンプリエンプティブでは、いったん実行状態になったタスクは、

自分で待ち状態に移る
または
終了する

まで、CPUを使い続けます。

そのため、OSが途中で強制的に別のタスクへ切り替える、という説明ではありません。

公式の出題範囲やシラバスは、IPA:基本情報技術者試験 から確認できます。タスク管理やスケジューリングは、OSやコンピュータシステムの基本動作と関係が深い内容です。

科目Aでどう出る?

科目Aでは、説明文から該当するスケジューリング方式を選ぶ形で出題されやすいです。

選択肢を切るときは、次のキーワードを見ます。

問題文のキーワード 選ぶ用語
OSが中断する、CPU使用時間、優先度で切替え プリエンプティブ
自ら待ち状態に移る、終了するまで切り替えない ノンプリエンプティブ
一定時間、時間片、次のタスクへ回す ラウンドロビン方式
優先度が高い方を実行する 優先順位方式
残りの実行時間が短い順 残余処理時間順方式

例えば、

実行状態としたタスクが自ら待ち状態に遷移するか終了するまで、
他のタスクを実行状態にできない

という説明なら、ポイントは 自ら待ち状態に遷移するか終了するまで です。

これはOSが途中で奪うのではなく、タスクがCPUを手放すまで待つ説明なので、ノンプリエンプティブです。

一方、

決められた時間内に待ち状態に遷移しないとき、
そのタスクを中断して次のタスクを実行する

なら、ラウンドロビン方式の説明です。

どんな場面で使う?

問題文でタスクスケジューリングが出る場合は、用語名そのものよりも、タスクの状態変化や実行順序を追う力 が大切です。

例えば、次のような情報が与えられることがあります。

  • タスクの到着時刻
  • 処理時間
  • 優先度
  • タイムクォンタム
  • 待ち状態に入るタイミング

このときは、どの方式で動いているかを先に確認します。

ラウンドロビン → 時間切れで次へ回す
優先順位方式   → 優先度を見る
ノンプリエンプティブ → 実行中タスクが手放すまで続く

方式を確認しないまま実行順序を追うと、途中でタスクを切り替えるべきかどうかを間違えやすくなります。

特に、ノンプリエンプティブでは、より優先度が高いタスクが実行可能状態になっても、実行中のタスクがCPUを手放すまで切り替えない場合があります。

よくある誤解・混同

一番多い混同は、ノンプリエンプティブでも、優先度が高いタスクが来たらすぐ切り替える と思ってしまうことです。

混同しやすい点 正しい理解
ノンプリエンプティブでもOSが途中で止める ノンプリエンプティブでは、基本的にタスクが手放すまで待つ
ラウンドロビンは優先度順で実行する ラウンドロビンは一定時間ごとに順番に回す
残余処理時間順は到着順で実行する 残り時間が短いタスクを優先する
優先順位方式は必ずプリエンプティブである 優先順位方式にも、切替えルールの違いがあり得る

プリエンプティブとノンプリエンプティブを見分けるコツは、中断の主導権がどこにあるか です。

OSが中断できる
→ プリエンプティブ

タスクがCPUを手放すまで待つ
→ ノンプリエンプティブ

また、ラウンドロビン方式は、プリエンプティブな方式の代表例として扱われることが多いです。

決められた時間を使い切ったら、実行中のタスクをいったん中断して、実行待ち行列の後ろに回します。

まとめ(試験直前用)

  • タスクスケジューリングは、OSがCPUをどのタスクに使わせるかを決める方法
  • OSが途中で中断できるなら プリエンプティブ
  • タスクが待ち状態に移るか終了するまで待つなら ノンプリエンプティブ
  • 一定時間ごとに順番に回すなら ラウンドロビン方式
  • 優先度なら 優先順位方式、残り時間なら 残余処理時間順方式

© 2024-2026 stemtazoo. All rights reserved.