最終更新日:2026年7月25日
fe fe-technology os
まず結論
タスクのディスパッチとは、実行可能状態のタスクに、プロセッサの使用権を割り当てることです。
基本情報技術者試験では、次のように切り分けると判断しやすくなります。
| 用語 | ざっくり意味 | 判断の合図 |
|---|---|---|
| スケジューリング | 次に実行するタスクを決める | 実行順序、優先順位 |
| ディスパッチ | 選ばれたタスクへCPUを割り当てる | CPU使用権、プロセッサ割当て |
| TCB | タスクの管理情報 | タスクID、優先度、状態、コンテキスト |
| マルチタスク | 複数タスクを同時実行のように見せる | 複数タスク、並行処理 |
特に、CPUを割り当てる、プロセッサの使用権を与える という説明が出たら、ディスパッチを疑います。
直感的な説明
タスクのディスパッチは、1つしかない作業席を、次の作業者に渡すイメージです。
CPUを「作業席」と考えてみます。
作業したいタスクが複数あっても、1つのCPUでは、同じ瞬間に実行できるタスクは基本的に1つです。
タスクA:実行したい
タスクB:実行したい
タスクC:実行したい
このとき、まず「次にどのタスクを実行するか」を決めます。
これが スケジューリング です。
次はタスクBにしよう
そして、選ばれたタスクBにCPUを渡して、実行状態にします。
これが ディスパッチ です。
タスクBにCPU使用権を渡す
→ タスクBが実行状態になる
つまり、
スケジューリング = 誰を次にするか決める
ディスパッチ = 実際にCPUを渡す
と考えると分かりやすいです。
定義・仕組み
タスクとは、OSが管理する処理の単位です。
OSは、複数のタスクを管理しながら、どのタスクにCPUを使わせるかを制御します。
タスクは、代表的に次のような状態を移ります。
| 状態 | 意味 |
|---|---|
| 実行可能 | CPUが割り当てられれば実行できる状態 |
| 実行 | CPUを使って処理している状態 |
| 待ち | 入出力完了などを待っている状態 |
| 終了 | タスクの処理が終わった状態 |
ディスパッチは、実行可能状態のタスクを実行状態に移す操作 と考えると整理しやすいです。
実行可能
↓ CPU割当て(ディスパッチ)
実行
このとき、OSの中でディスパッチを行うプログラムを ディスパッチャ と呼びます。
関連する用語は、次のように整理できます。
| 用語 | 意味 |
|---|---|
| スケジューラ | 次に実行するタスクを選ぶ仕組み |
| ディスパッチャ | 選ばれたタスクにCPUを割り当てる仕組み |
| TCB | タスクを管理するための情報を保持する領域 |
| コンテキスト | タスクを中断・再開するために必要なCPU状態 |
TCBには、タスクの状態、優先度、レジスタ情報、プログラムカウンタなど、タスク管理に必要な情報が保持されます。
このテーマは、基本情報技術者試験の「オペレーティングシステム」や「タスク管理」と関係する内容です。公式の出題範囲やシラバスは、IPA:基本情報技術者試験 から確認できます。
科目Aでどう出る?
科目Aでは、ディスパッチ、スケジューリング、TCB、マルチタスクなどの説明を選ぶ問題が出やすいです。
用語を選ぶときは、説明文の中心が 決定 なのか、CPUの割当て なのか、管理情報 なのかを見ます。
| 説明の中心 | 対応する用語 | 見るポイント |
|---|---|---|
| 実行順序や優先順位を決める | スケジューリング | 次にどのタスクを実行するか |
| CPU使用権を割り当てる | ディスパッチ | 選ばれたタスクを実行状態にする |
| タスクの状態や優先度を保持する | TCB | タスク管理のための情報 |
| タスク再開に必要なCPU状態を保持する | コンテキスト | レジスタ、プログラムカウンタなど |
| 複数タスクを同時実行のように見せる | マルチタスク | CPUを短時間で切り替える |
選択肢を切るときは、次の対応を使うと便利です。
順番を決める → スケジューリング
CPUを割り当てる → ディスパッチ
管理情報を持つ → TCB
状態を保存する → コンテキスト
同時に見せる → マルチタスク
英語で言うなら、次の感覚です。
Dispatch means assigning the CPU to a ready task.
「ready task」は、実行可能状態のタスクという意味です。
どんな場面で使う?
問題文では、ディスパッチという用語そのものより、タスク状態の遷移やCPU割当ての流れを読む場面で役立ちます。
例えば、次のような流れです。
実行可能状態のタスクが複数ある
↓
スケジューラが次のタスクを選ぶ
↓
ディスパッチャがCPUを割り当てる
↓
選ばれたタスクが実行状態になる
また、実行中のタスクが入出力を要求すると、待ち状態へ移ることがあります。
実行
↓ 入出力要求
待ち
↓ 入出力完了
実行可能
↓ ディスパッチ
実行
このように、ディスパッチは、タスク状態遷移の中で 実行可能から実行へ移る場面 と関係します。
問題文で読むときは、次の点を確認すると理解しやすくなります。
1. タスクは実行可能状態か
2. CPUを割り当てる場面か
3. 実行順序を決める話か
4. タスクの状態や管理情報の話か
「CPUを割り当てる」ならディスパッチ、「順序を決める」ならスケジューリングです。
よくある誤解・混同
誤解1:ディスパッチとスケジューリングを同じだと思う
ディスパッチとスケジューリングは近い関係ですが、役割が違います。
| 用語 | 役割 |
|---|---|
| スケジューリング | 次に実行するタスクを決める |
| ディスパッチ | 選ばれたタスクにCPUを割り当てる |
試験では、決める と 割り当てる を分けて読みます。
実行順序を決定する
→ スケジューリング
プロセッサの使用権を割り当てる
→ ディスパッチ
誤解2:TCBをディスパッチだと思う
TCBは、Task Control Block の略で、タスクを管理するための情報を保持する領域です。
ディスパッチは操作であり、TCBは情報を保持するものです。
| 用語 | 見るポイント |
|---|---|
| ディスパッチ | CPU使用権を割り当てる操作 |
| TCB | タスクID、状態、優先度、コンテキストなどの管理情報 |
「タスクの実行に必要な情報」とあれば、ディスパッチではなくTCBやコンテキストを考えます。
誤解3:マルチタスクをディスパッチだと思う
マルチタスクは、複数のタスクを並行して実行しているように見せる仕組みです。
ディスパッチは、その中で実行可能なタスクにCPUを割り当てる操作です。
マルチタスク:複数タスクを同時に動いているように見せる考え方
ディスパッチ:その中でCPUを渡す操作
「同時に実行しているかのように見せる」とあれば、マルチタスクを疑います。
誤解4:コンテキストを「文章の文脈」と考えてしまう
一般的な英語では、context は「文脈」という意味です。
しかし、OSの文脈では、コンテキストはタスクを中断・再開するために必要なCPU状態を指します。
例えば、次のような情報です。
レジスタの値
プログラムカウンタ
スタックポインタ
実行途中の状態
コンテキストを保存しておくことで、別のタスクに切り替えたあとでも、元のタスクを再開できます。
まとめ(試験直前用)
- ディスパッチは、実行可能なタスクへCPU使用権を割り当てること
- 順番を決める のはスケジューリング
- CPUを渡す のがディスパッチ
- タスクの管理情報 はTCB
- 複数タスクを同時に見せる のはマルチタスク
- タスク状態では、実行可能から実行へ移る場面に注目する