応用情報技術者 2011年 秋期 午前2 問17
問題文
ジョブの多重度が1で、到着順にジョブが実行されるシステムにおいて、表に示す状態のジョブA〜Cを処理するとき、ジョブCが到着してから実行が終了するまでのターンアラウンドタイムは何秒か。ここで,OSのオーバヘッドは考慮しないものとする。

選択肢
ア:11(正解)
イ:12
ウ:13
エ:14
🔒 解説は解答すると表示されます
ターンアラウンドタイム【午前2解説】
正解の理由
到着順(FCFS)で単一実行(多重度1)のため、ジョブは到着順に並んで順次実行されます。各ジョブの実行区間を明確にすると次のとおりです。
- ジョブA:0秒から5秒まで実行されます(継続時間5秒)。
- ジョブB:5秒から11秒まで実行されます(継続時間6秒)。
- ジョブC:11秒から14秒まで実行されます(継続時間3秒)。
ジョブCの到着時刻は3秒、完了時刻は14秒なのでターンアラウンドタイムは完了時刻−到着時刻で求められ、秒です。したがって選択肢のうち正しいのは ア の11秒です。
解法ステップ
- スケジューリング方式を確認:到着順(FCFS)、単一CPU(多重度1)、オーバヘッド無視。
- 到着時刻の昇順で実行順を決定:A(0)→B(2)→C(3)。
- 先頭ジョブから順に開始・終了時刻を累積して算出:
- A は 0 → 5(5秒)
- B は 5 → 11(6秒)
- C は 11 → 14(3秒)
- ターンアラウンドタイムを計算:完了時刻 − 到着時刻 = 秒。
選択肢別の誤答解説
- 選択肢 ア:11 — 上記の通り正しい。各ジョブの開始・終了時刻を明確に取れば一貫して導けます。
- イ:12 — 多くの場合、Aの処理時間を誤って6秒と読んでしまい(あるいはオーバヘッドを1秒含めてしまい)Aを0〜6とすると、Bが6〜12、Cが12〜15となりターンアラウンドが12秒になる誤りです。問題文ではAの処理時間は5秒、オーバヘッドは考慮しません。
- ウ:13 — 「終了時刻の合計」や「全処理時間の合計」など別の項目と混同して計算した結果が出やすい値です(例えば処理時間合計を誤って到着時刻0からの経過と取り違える等)。本問ではジョブCの到着時刻を基準に完了時刻から差し引く必要があります。
- エ:14 — 全ジョブの処理時間合計(5+6+3=14)をそのままターンアラウンドタイムと誤認するケースです。これは「ジョブCの到着が0秒であった」と誤解した場合に起こりますが、実際の到着時刻は3秒である点に注意してください。
よくある誤解
- 開始・終了時刻と「継続時間(処理時間)」を混同する:必ず「何秒から何秒まで(継続何秒)」の形式で計算すること。
- 到着順序の扱いを誤る:到着時刻が早い順で実行されるため、到着順を正しく並べることが第一歩です。
- 包含/除外のオフバイワン:例えば「0〜5秒」を6秒と数えてしまうなどの単純ミスに注意してください。
補足コラム
ターンアラウンドタイム(TAT)はジョブの到着から完了までの経過時間を示す指標で、応答性やスループットの評価に使われます。定義は単純で、
です。FCFS(到着順)では、前に来たジョブの残り処理が全て終わるまで後のジョブは待機するため、到着が遅いジョブほど待ち時間が長くなる傾向があります。簡単なシミュレーションは次のようなコードで確認できます。
# 単純なFCFSシミュレーション例
jobs = [("A",0,5), ("B",2,6), ("C",3,3)] # (名前, 到着, 処理)
time = 0
completion = {}
for name, arrival, proc in sorted(jobs, key=lambda x: x[1]):
if time < arrival:
time = arrival
start = time
time += proc
completion[name] = time
print("Completion:", completion)
print("Turnaround C:", completion["C"] - 3) # Cの到着は3秒
FAQ
Q. 同時到着(同一時刻に複数到着)の場合はどうなる?
A. 本問のように特に指定がなければ到着順(FCFS)であっても同時到着の内部順序は実装依存です。試験問題では同時到着が重要になる場合、順序が問題文で明示されるか、並べ替えの影響がないよう設問されます。
A. 本問のように特に指定がなければ到着順(FCFS)であっても同時到着の内部順序は実装依存です。試験問題では同時到着が重要になる場合、順序が問題文で明示されるか、並べ替えの影響がないよう設問されます。
Q. オーバヘッドがあると答えはどう変わる?
A. オーバヘッドがあると各ジョブの切り替え等で余分に時間がかかるため完了時刻がずれ、ターンアラウンドタイムが増加します。本問では「オーバヘッドは考慮しない」と明示されています。
A. オーバヘッドがあると各ジョブの切り替え等で余分に時間がかかるため完了時刻がずれ、ターンアラウンドタイムが増加します。本問では「オーバヘッドは考慮しない」と明示されています。
Q. プリエンプティブ(中断可能)なら結果は変わる?
A. はい。プリエンプティブなスケジューリング(例:RR、SRTなど)だと実行順や待ち時間が変わり、ジョブCのターンアラウンドタイムも変化します。本問は到着順の非プリエンプティブを想定しています。
A. はい。プリエンプティブなスケジューリング(例:RR、SRTなど)だと実行順や待ち時間が変わり、ジョブCのターンアラウンドタイムも変化します。本問は到着順の非プリエンプティブを想定しています。
関連キーワード: ターンアラウンドタイム、FCFS、待ち時間、スケジューリング、処理時間計算

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

