ITパスポート 2013年 春期 問57
問題文
1台のCPUと1台の出力装置で構成されているシステムで、表の三つのジョブを処理する。三つのジョブはシステムの動作開始時点ではいずれも処理可能状態になっている。CPUと出力装置のそれぞれにおいて、ジョブ1、ジョブ2、ジョブ3の順に処理する。CPUと出力装置は独立して動作するが、出力処理はそれぞれのジョブのCPU処理が終了してから実施可能になる。ジョブ3の出力が完了するのは、ジョブ1の処理開始時点から何秒後か。

選択肢
ア:30
イ:45
ウ:100(正解)
エ:115
🔒 解説は解答すると表示されます
ジョブの処理順と完了時刻の計算【ITパスポート 解説】
正解の理由
CPU(Central Processing Unit:処理を行う中心の装置)と出力装置(プリンタや画面など、結果を出す装置)は独立して動きます。各ジョブの出力はそのジョブのCPU処理が終わってからしか始められません。CPUはジョブ1→ジョブ2→ジョブ3の順に処理し、出力装置も同じ順で出力を行います。これらの条件の下でタイムラインを追うと、ジョブ3の出力完了は開始時点から100秒後になります。したがって選択肢の中では ウ(100秒)が正しいです。
解法ステップ
-
各ジョブのCPU処理終了時刻を順に計算する。
- ジョブ1 CPU終了 = 秒
- ジョブ2 CPU終了 = 秒
- ジョブ3 CPU終了 = 秒
-
出力装置の動きを順に決める。出力は「前の出力終了時刻」と「そのジョブのCPU終了時刻」のうち遅い方から始める(どちらかが準備できているまで待つため)。
- ジョブ1 出力開始 = max(出力の前回終了=0, ジョブ1 CPU終了=35) = 35 → 出力終了 = 秒
- ジョブ2 出力開始 = max(前回終了=45, ジョブ2 CPU終了=55) = 55 → 出力終了 = 秒
- ジョブ3 出力開始 = max(前回終了=75, ジョブ3 CPU終了=60) = 75 → 出力終了 = 秒
-
以上より、ジョブ3の出力完了は開始時点から100秒後。
(この手順はガントチャートを紙に横軸時間で描くと直感的です。)
選択肢別の誤答解説
-
ア: 30秒
誤りの理由例 — ジョブ1のCPU時間35秒よりも小さい値になっており、時間の合算や順序を誤って扱っています。出力が始まるのはCPU処理終了後なので、いずれにせよ30秒はあり得ません。 -
イ: 45秒
誤りの理由例 — これはジョブ1の出力終了時刻(35+10=45)をジョブ3の完了と取り違えたケースです。ジョブ3は後続のジョブなのでさらに時間がかかります。 -
ウ: 100秒
正しい。上の解法ステップの通り、CPUと出力の重なり(オーバーラップ)を考慮するとジョブ3出力完了は100秒になります。 -
エ: 115秒
誤りの理由例 — これはCPU全体時間の合計(35+20+5=60秒)と出力全体時間の合計(10+20+25=55秒)を単純に足してしまった場合です(60+55=115秒)。しかしCPUと出力は独立に動けるので、すべての処理が完全に直列でしか動かないとは限らず重複する時間(例えばCPUがジョブ3を処理している間に出力はジョブ2の出力をしているなど)が生じます。よって115秒は余分にカウントしています。
よくある誤解
-
CPUと出力装置は「同時に」動けないと勘違いする。
- 実際は独立して動けます。CPUが別のジョブを処理している間に出力装置が前のジョブの出力を行えます。これが重なり(オーバーラップ)を生みます。
-
出力はそのジョブのCPU終了前でも開始できると考える。
- 出力は「そのジョブのCPU処理が終了していること」が開始条件です。CPU終了前に出力を始められません。
-
全時間を単純に合算する(CPU合計+出力合計)ことで答えを出す。
- これだと重複時間を二重に数えることになり誤答になります。各装置の実際の開始・終了時刻を追う必要があります。
補足コラム
この問題は「パイプライン処理」や「オーバーラップ」に親しい考え方です。仕事が直列に並んでいるが、工程(CPU処理と出力処理)が別々の装置で行われるため、全体の所要時間は単純な合算より短くなることがあります。実務で言えば、営業資料をPDFに変換(CPU相当)しつつ、前の資料をプリント(出力装置相当)している間に次の変換を進められるイメージです。
汎用的な手順(覚え方):
- CPU完了時刻を順に計算する(累積和)
- 出力開始は「前の出力の終了」と「そのジョブのCPU完了」の遅い方を取る
- 出力終了は開始+そのジョブの出力時間
これを繰り返せば確実に求められます。
FAQ
Q. 出力装置が複数台あればどう変わりますか?
A. 出力装置が複数あれば、出力の待ち行列が短くなり、ジョブの出力完了時刻は早くなる可能性があります。各出力装置の空き状況を見て割り当てる必要があります。
A. 出力装置が複数あれば、出力の待ち行列が短くなり、ジョブの出力完了時刻は早くなる可能性があります。各出力装置の空き状況を見て割り当てる必要があります。
Q. 出力の順序がCPUの順序と違ったら?
A. 問題で「出力装置はジョブ1→ジョブ2→ジョブ3の順に処理する」とある場合はその順で決まります。順序が異なれば、出力の待ち時間が変わるため計算をやり直します。
A. 問題で「出力装置はジョブ1→ジョブ2→ジョブ3の順に処理する」とある場合はその順で決まります。順序が異なれば、出力の待ち時間が変わるため計算をやり直します。
Q. 「独立して動作する」とは具体的に何を意味しますか?
A. 一方の装置(CPU)を使っていても、もう一方(出力装置)は別に別の処理を同時に進められるという意味です。互いに干渉して同時使用ができないという意味ではありません。
A. 一方の装置(CPU)を使っていても、もう一方(出力装置)は別に別の処理を同時に進められるという意味です。互いに干渉して同時使用ができないという意味ではありません。
関連キーワード: ジョブスケジューリング、ガントチャート、オーバーラップ、パイプライン、CPU処理時間、出力装置、累積和、クリティカルパス

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

