Skip to the content.

最終更新日:2026年9月18日

まず結論

処理時間順方式とは、CPUが空いたとき、すでに到着して待っているジョブの中から、処理時間が最も短いものを選んで実行する方式です。

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

今のジョブが完了
↓
その時点で到着済みのジョブを確認
↓
処理時間を比較
↓
最も短いジョブを実行

大切なのは、まだ到着していないジョブは候補に入れないことです。

直感的な説明

処理時間順方式は、作業待ちの列から「すぐ終わる仕事」を先に片付けるイメージです。

ただし、未来に来る仕事まで先読みして選ぶわけではありません。

例えば、次のジョブがあるとします。

ジョブ 到着時刻 処理時間
A 0秒 2秒
B 1秒 4秒
C 2秒 3秒
D 3秒 2秒
E 4秒 1秒

時刻0ではAしか到着していないので、Aから始めます。

Aが終わる時刻2では、BとCが到着済みです。

B:4秒
C:3秒

短いCを選びます。

このように、ジョブが終わるたびに、その時点で待っている候補を比較するのがポイントです。

触って確認:処理時間順方式を1段階ずつ追う

「次の判断」を押すと、その時点で待っているジョブを比較し、処理順が時間軸に追加されます。

ジョブ到着処理時間
A02
B14
C23
D32
E41
A
C
E
D
B

時刻0:到着済みはAだけなので、Aを実行します。

この時点の比較: 候補:A(2秒) → Aを選択

ここまでの時間軸: A:0〜2秒

見るポイント:ジョブが到着した瞬間ではなく、CPUが空いた時点で「到着済みの中から最短」を選びます。

JavaScriptが使えない環境でも、最終的な処理順は次のように確認できます。

0        2           5   6       8               12
|--- A ---|---- C ----|-E-|-- D --|------ B ------|

処理順:A → C → E → D → B

定義・仕組み

処理時間順方式は、予定処理時間が短いジョブを優先するスケジューリング方式です。

SJF(Shortest Job First)と呼ばれる考え方に対応します。

到着時刻も見る

処理時間だけを小さい順に並べればよいわけではありません。

先ほどの例では、Eの処理時間が1秒で最短ですが、Eが到着するのは時刻4です。

時刻0ではEはまだ存在しないため、最初に選ぶことはできません。

時刻0
到着済み:Aだけ
→ Aを実行

時刻2
到着済みで未処理:B、C
→ Cを実行

時刻5
到着済みで未処理:B、D、E
→ Eを実行

試験では、「その時点で選べる候補はどれか」を先に確認するとミスが減ります。

ノンプリエンプティブとして考える

典型的な処理時間順方式では、いったん実行を開始したジョブは、完了するまで続けます。

例えば、Cを実行中に、より短いEが到着しても、すぐにはCを中断しません。

Cを実行中
↓
Eが到着
↓
Cはそのまま完了まで実行
↓
CPUが空いた時点でEを候補に入れる

実行中のジョブを途中で止めて、残り時間が短いジョブへ切り替える考え方は、プリエンプティブなスケジューリングとして区別します。

詳しくは、プリエンプティブスケジューリングとは?も確認してください。

ターンアラウンドタイムとの関係

処理順が決まると、各ジョブの完了時刻が分かります。

例えばBは、

到着:1秒
実行:8〜12秒
完了:12秒

です。

ターンアラウンドタイムは、

完了時刻 − 到着時刻
= 12 − 1
= 11秒

となります。

ターンアラウンドタイムそのものの意味や、待ち時間との違いは、ターンアラウンドタイムとは?で整理しています。

このテーマは、基本情報技術者試験の「オペレーティングシステム」「タスク管理」「スケジューリング」と関係します。公式の出題範囲やシラバスは、IPA:基本情報技術者試験から確認できます。

科目Aでどう出る?

科目Aでは、到着時刻と処理時間が表で与えられ、処理順や特定ジョブの完了時刻・ターンアラウンドタイムを求める問題があります。

解く順番は次のとおりです。

1. 現在の時刻を確認
2. その時点で到着済みのジョブだけを抜き出す
3. 処理時間を比べて最短を選ぶ
4. 選んだジョブの完了時刻まで時間を進める
5. 新しく到着したジョブを加えて再び比較する

試験では、いきなりターンアラウンドタイムを計算するよりも、まず時間軸を完成させる方が安全です。

処理順を決める
↓
完了時刻が決まる
↓
最後に必要な時間を計算する

判断表

問題文の表現 判断
到着した順に処理 到着順方式
一定時間ずつ順番にCPUを割り当てる ラウンドロビン
到着済みの中から短いジョブを優先 処理時間順方式
優先度の高いジョブを優先 優先度方式

スケジューリング方式全体の比較は、CPUスケジューリング方式とは?も合わせて確認すると整理しやすくなります。

どんな場面で使う?

処理時間順方式は、短時間で終わるジョブを先に処理し、平均的な待ち時間を小さくしたいときの考え方です。

例えば、短い作業と長い作業が同じ待ち行列にある場合、短い作業を先に終わらせることで、多くのジョブを早く完了させやすくなります。

一方で、短いジョブが次々と到着すると、長いジョブが後回しになり続ける可能性があります。

この状態は スタベーション(飢餓状態) と呼ばれます。

長いジョブが待つ
↓
短いジョブが到着
↓
短いジョブを先に実行
↓
また短いジョブが到着
↓
長いジョブがさらに待つ

そのため、処理時間順方式は「短いものを優先する」という利点と、「長いものが待ち続ける可能性」をセットで理解します。

よくある誤解・混同

誤解1:処理時間が短い順に、最初から全部並べればよい

違います。

まだ到着していないジョブは選べません。

処理時間だけを見る
→ 不十分

到着済みか確認してから処理時間を比較
→ 正しい考え方

誤解2:短いジョブが到着したら、実行中ジョブをすぐ中断する

典型的な処理時間順方式では、実行中ジョブを完了まで続ける前提で考えます。

途中でCPUを取り上げるかどうかは、プリエンプティブかノンプリエンプティブかの違いです。

誤解3:処理時間とターンアラウンドタイムは同じ

違います。

処理時間は、CPUで実際に処理する時間です。

ターンアラウンドタイムは、待ち時間も含めた到着から完了までの時間です。

処理時間
→ 実際に実行している時間

ターンアラウンドタイム
→ 到着してから完了するまで

誤解4:早く到着したジョブが必ず先に処理される

処理時間順方式では、CPUが空いた時点で複数のジョブが待っていれば、到着順よりも処理時間の短さを優先します。

誤解5:短いジョブを優先すれば欠点はない

長いジョブが後回しになり続けるスタベーションに注意します。

短いものを優先
→ 平均待ち時間を短くしやすい

短いものが入り続ける
→ 長いジョブが待ち続ける可能性

まとめ(試験直前用)

  • 処理時間順方式は、到着済みのジョブの中から最短のものを選ぶ
  • まだ到着していないジョブは候補に入れない
  • 典型的には、実行を始めたジョブは完了まで続ける
  • 計算問題では、まず処理順を時間軸に書く
  • 完了時刻が分かってから、ターンアラウンドタイムなどを計算する
  • 短いジョブを優先するため、長いジョブのスタベーションに注意する

覚える一文はこれです。

CPUが空いたら、到着済みの中でいちばん短いジョブを選ぶ。

© 2024-2026 stemtazoo. All rights reserved.