タスク管理(プロセス管理)は、OSの中核機能の一つであり、基本情報技術者・応用情報技術者の午前問題で繰り返し出題されているテーマです。
対象試験と出題頻度
タスク管理(プロセス管理)は、基本情報技術者・応用情報技術者で出題されるテーマです。
OS(オペレーティングシステム)の5大管理機能の一つとして、状態遷移図やスケジューリング方式の問題が定番化しています。
詳細をクリックして確認
基本情報技術者
応用情報技術者
★★★☆☆
ランクB(標準)覚えておくと有利
用語の定義
情報処理試験を勉強していると、「タスク管理って記憶管理や入出力管理と何が違うの?」と混乱しがちです。
タスク管理(プロセス管理)とは、一言で言うと
「OSがタスク(プロセス)の生成から消滅までを制御し、CPUを効率よく使い回す仕組み」
のことです。
イメージとしては、「レストランのホールスタッフ」です。
キッチン(CPU)は1つしかありませんが、注文(タスク)は複数のテーブルから同時に入ります。
ホールスタッフは「どの注文を先にキッチンへ通すか」「料理を待っているテーブルはどれか」を管理して、すべてのお客様にスムーズに料理を届けます。タスク管理も同じで、限られたCPUを複数のタスクで奪い合わないよう交通整理する役割を担います。
📊 タスク管理(プロセス管理)の基本情報
| 項目 | 内容 |
|---|---|
| 英語名 | Task Management / Process Management |
| 分類 | OSの5大管理機能の一つ |
| 主な目的 | マルチプログラミング環境でCPUを有効活用し、スループットを向上させる |
| 関連概念 | タスクの状態遷移、スケジューリング方式、ディスパッチャ、TCB |
解説
コンピュータ上では複数のプログラムが同時に動いているように見えますが、CPU(演算装置)は基本的に1つの処理しか同時に実行できません。
そこで、OSが各タスクにCPUを短時間ずつ割り当てて高速に切り替えることで、あたかも同時に動いているかのように見せています。この制御全般を担うのがタスク管理です。
タスクとプロセスの違い
「タスク」と「プロセス」はほぼ同義で使われますが、厳密にはタスクはOS(特にリアルタイムOS)側の呼び方、プロセスはUNIX/Linux系での呼び方です。
IPA試験では両者を区別せず出題されるため、同じものと理解して問題ありません。
3つの状態遷移
タスクは常に「実行状態」「実行可能状態」「待ち状態」のいずれかに分類されます。
OSはこの3状態の間の遷移を制御して、CPUの空き時間を最小化します。
タスクの3状態遷移図
遷移の流れ
① ディスパッチ:実行可能 → 実行(CPUが割り当てられた)
② プリエンプション:実行 → 実行可能(CPU使用権を奪われた)
③ I/O要求:実行 → 待ち(入出力の完了を待つ)
④ I/O完了:待ち → 実行可能(入出力が完了し、再びCPU待ちへ)
| 遷移 | 方向 | きっかけ |
|---|---|---|
| ディスパッチ | 実行可能 → 実行 | ディスパッチャがCPU使用権を割り当てる |
| プリエンプション | 実行 → 実行可能 | タイムスライスの時間切れ、または優先度の高いタスクの割り込み |
| I/O要求 | 実行 → 待ち | 入出力処理の開始により完了を待つ |
| I/O完了 | 待ち → 実行可能 | 入出力処理が完了し、再びCPU割当てを待つ |
ここだけは確実に押さえてください。待ち状態から実行状態へ直接遷移することはありません。
必ず実行可能状態を経由します。この点は選択肢のひっかけに直結します。
代表的なスケジューリング方式
どのタスクに次のCPU使用権を渡すかを決めるアルゴリズムがスケジューリング方式です。
代表的な4つの方式を整理します。
| 方式名 | 概要 | 特徴 |
|---|---|---|
| 到着順(FCFS) | 待ち行列に入った順番にCPUを割り当てる | 実装が単純。長い処理が先に入ると後続が待たされる |
| ラウンドロビン | 一定時間(タイムクォンタム)ごとにCPUを切り替える | 公平性が高い。対話型処理向き |
| 優先度順 | 優先度の高いタスクから先に実行する | リアルタイムOS向き。低優先度のタスクが飢餓状態になる恐れがある |
| 処理時間順(SPT) | 処理予定時間が短いタスクから実行する | 平均待ち時間が最小化される。長い処理が後回しにされ続ける可能性がある |
プリエンプティブとノンプリエンプティブ
スケジューリングには「プリエンプティブ方式」と「ノンプリエンプティブ方式」の2つの考え方があります。
プリエンプティブ方式では、OSが実行中のタスクからCPU使用権を強制的に奪い取って別のタスクに切り替えます。一方、ノンプリエンプティブ方式では、タスクが自発的にCPUを手放す(I/O要求や終了)まで切り替えは発生しません。
プリエンプティブ方式
OSが強制的にCPUを奪い取って切り替える。ラウンドロビンや優先度順方式で採用される。リアルタイム性が求められる場面で有効。
ノンプリエンプティブ方式
タスクが自発的にCPUを返却するまで待つ。到着順方式が典型。応答時間の保証が難しいが、切り替えのオーバヘッドは小さい。
では、この用語が試験でどのように出題されるか見ていきましょう。
💡 タスク管理の核心を3行で
・タスクは「実行状態」「実行可能状態」「待ち状態」の3つを遷移する(待ち→実行への直接遷移は不可)
・ディスパッチ(実行可能→実行)とプリエンプション(実行→実行可能)の用語を区別する
・ラウンドロビン・優先度順・到着順・処理時間順の4方式が頻出
試験ではこう出る!
タスク管理は、FE・APの午前問題でOS分野の定番テーマとして繰り返し出題されています。出題パターンは大きく3つに分かれます。
📊 過去問での出題実績
| 試験回 | 出題内容 | 問われたポイント |
|---|---|---|
| FE H20秋 問28 |
タスク管理の役割として適切なものを選ぶ | ・正解は「マルチプログラミングの制御を行い、CPUを有効に利用する」 ・データ管理・記憶管理・入出力管理がひっかけ |
| FE R1秋 問18 |
プリエンプティブなスケジューリングにおけるタスクの実行順序を求める | ・優先度の高いタスクがCPU使用権を奪い取る動作の理解 ・タイムチャートの読み取りが必要 |
| AP R3春 午前 問17 |
プリエンプションによってタスクが遷移する状態を問う | ・正解は「実行可能状態」 ・休止状態・終了状態・待ち状態がひっかけ |
| AP R6秋 午前 問16 |
特定のタスクがCPU割当てを待ち続ける可能性が高いスケジューリング方式を問う | ・正解は「処理時間順方式」 ・動的優先順位・ラウンドロビン・到着順がひっかけ |
📝 IPA試験での出題パターン
パターン1:「状態遷移の方向を選べ」
3状態遷移図が示され、特定の遷移(ディスパッチ・プリエンプション等)がどの方向に起こるかを選ぶ形式。「待ち状態→実行状態」の選択肢は常に不正解。
パターン2:「スケジューリング方式の特徴を選べ」
4つのスケジューリング方式の説明が並び、ラウンドロビンや到着順方式に該当するものを選ぶ形式。「一定時間(タイムクォンタム)」のキーワードが出たらラウンドロビン。
パターン3:「タイムチャートを読み取れ」
優先度付きプリエンプティブ方式で複数タスクの実行順序や完了時刻を計算させる形式。FE R1秋 問18が典型。CPU使用とI/O使用の時系列を追う必要がある。
試験ではここまででOKです。TCB(タスク制御ブロック)の内部構造や、セマフォ・デッドロックの詳細まで深追いは不要です。
【確認テスト】理解度チェック
ここまでの内容を理解できたか、簡単なクイズで確認してみましょう。
Q. OSのタスク管理に関する説明として、最も適切なものはどれでしょうか?
- A. 仮想記憶空間を提供し、実記憶の容量を超えるプログラムの実行を可能にする。
- B. マルチプログラミング環境においてタスクの状態遷移を制御し、CPUの利用効率を高める。
- C. 各種の補助記憶装置へのアクセス手段を、装置に依存しない形態で提供する。
正解と解説を見る
正解:B
解説:
タスク管理は、OSの管理機能の一つで、マルチプログラミング環境でタスクの生成・実行・消滅を制御し、CPUを有効に活用するための仕組みです。
選択肢Aは記憶管理の説明です。仮想記憶空間の提供は、主記憶の容量制限を克服するために記憶管理が担う機能であり、タスクの状態制御とは役割が異なります。選択肢Cはデータ管理(ファイル管理)の説明です。補助記憶装置へのアクセスを抽象化するのはファイルシステムの役割です。
よくある質問(FAQ)
Q. タスクとスレッドは何が違いますか?
タスク(プロセス)は独立したメモリ空間を持つ実行単位です。一方、スレッドは1つのプロセス内で複数存在でき、メモリ空間を共有します。スレッドはプロセスより切り替えのコストが小さいため、Webサーバのような同時接続数が多い場面で利用されます。IPA試験では「マルチスレッド」の文脈で問われることがあります。
Q. TCB(タスク制御ブロック)とは何ですか?
TCBは、OSがタスクごとに保持する管理情報のデータ構造です。タスクの状態(実行・実行可能・待ち)、プログラムカウンタの値、レジスタの退避情報、優先度などが格納されています。タスクの切り替え時にはTCBの情報を使って実行コンテキストを復元します。試験で深掘りされることはほぼないため、「タスクの管理台帳」と理解しておけば十分です。
Q. ラウンドロビン方式のタイムクォンタムが短すぎるとどうなりますか?
タスクの切り替え(コンテキストスイッチ)が頻繁に発生し、切り替え自体のオーバヘッドが全体の処理時間に占める割合が増えます。結果としてスループット(単位時間あたりの処理完了数)が低下します。反対に長すぎると到着順方式と同じ挙動になり、応答性が悪化します。
Q. タスク管理と割込みはどう関係しますか?
割込みはタスクの状態遷移を引き起こすトリガの一つです。例えば、入出力完了割込みが発生すると、待ち状態のタスクが実行可能状態に遷移します。また、タイマ割込みはラウンドロビン方式でタイムクォンタムの満了を検知する仕組みとして使われています。タスク管理が「何をするか」を決め、割込みが「いつ切り替えるか」のきっかけを与える関係です。