Skip to the content.

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

まず結論

CPUスケジューリングとは、複数のタスクのうち、次にどのタスクへCPUを割り当てるかを決める仕組みです。

基本情報技術者試験では、次の順で考えると整理しやすくなります。

1. CPUを使えるタスクを確認する
2. その中から優先度が高いタスクを選ぶ
3. I/O待ちのタスクはCPUを使えない
4. CPUを使えるタスクが1つもなければ遊休時間

特に大切なのは、優先度が高くても、I/O待ち中ならCPUは使えないという点です。

直感的な説明

CPUを、1人しかいない作業者だと考えてみます。

複数の仕事が届いていても、作業者が同時に処理できるのは1件だけです。

一方、I/O装置は別の担当者のようなものです。

CPU処理 → CPUが担当する
I/O処理 → 入出力装置が担当する

あるタスクがI/O処理をしている間、CPUは別の実行可能なタスクを処理できます。

定義・仕組み

タスクは、処理の進行に応じて状態が変わります。

状態 意味
実行状態 現在CPUを使っている
実行可能状態 CPUが空けば実行できる
待ち状態 I/O完了などを待っている

CPUは、実行可能状態のタスクから次に実行するものを選びます。

優先度方式では、実行可能なタスクの中から、優先度が最も高いものを実行します。

優先度が高い
+
実行可能状態
→ CPUを使える

優先度が高くても、I/O待ちなら候補にはなりません。

科目Aでどう出る?

科目Aでは、CPU処理とI/O処理が交互に並ぶタスクをタイムチャートにして、CPUの遊休時間などを求めます。

たとえば、3つのタスクが次の処理を行うとします。

優先度 処理順序
CPU 3 → I/O 5 → CPU 2
CPU 2 → I/O 6 → CPU 2
CPU 1 → I/O 5 → CPU 1

CPUの処理順は次のようになります。

0〜3   高のCPU処理
3〜5   中のCPU処理
5〜6   低のCPU処理
6〜8   全タスクがI/O待ち → CPU遊休
8〜10  高のCPU処理
10〜11 全タスクがI/O待ち → CPU遊休
11〜13 中のCPU処理
13〜14 低のCPU処理

したがって、CPUの遊休時間は、

6〜8   2ミリ秒
10〜11 1ミリ秒
合計   3ミリ秒

となります。

タイムチャートの書き方

  1. 最初に実行可能なタスクを確認する
  2. その中から最も優先度が高いものを実行する
  3. I/Oに入ったタスクを待ち状態にする
  4. 残りの実行可能タスクを探す
  5. 実行可能タスクがなければ遊休時間として記録する

この順番で追えば、複雑な問題でも整理しやすくなります。

よくある誤解・混同

誤解1:優先度が高いタスクは常にCPUを使う

優先度が高くても、I/O待ち中ならCPUは使えません。

誤解2:I/O中もCPUを使っている

I/O処理は入出力装置が担当します。その間、CPUは別のタスクを実行できます。

誤解3:CPU時間とI/O時間を全部足せばよい

CPU処理とI/O処理は並行して進むため、単純な合計では求められません。

誤解4:空白時間をすべて遊休時間と考える

遊休時間は、CPUを使えるタスクが1つもない時間です。各タスクが実行可能か待ち状態かを確認します。

まとめ(試験直前用)

  • CPUは、実行可能なタスクの中から次に実行するものを選ぶ
  • 優先度方式では、実行可能な中で最も優先度が高いタスクを選ぶ
  • I/O待ちのタスクはCPUを使えない
  • 全タスクがI/O待ちの時間がCPUの遊休時間
  • タイムチャートを書いて、CPU処理とI/O処理を分けて追う

© 2024-2026 stemtazoo. All rights reserved.