応用情報技術者 2017年 春期 午前2 問13
問題文
CPUと磁気ディスク装置で構成されるシステムで、表に示すジョブA, Bを実行する。この二つのジョブが実行を終了するまでのCPUの使用率と磁気ディスク装置の使用率との組合せのうち、適切なものはどれか。ここで、ジョブA, Bはシステムの動作開始時点ではいずれも実行可能状態にあり、A, Bの順で実行される。CPU及び磁気ディスク装置は、ともに一つの要求だけを発生順に処理する。ジョブA, BともCPUの処理を終了した後、磁気ディスク装置の処理を実行する。


選択肢
ア:
イ:(正解)
ウ:
エ:
ジョブ A(3s,7s)・B(12s,10s) の CPU/磁気ディスク使用率【午前2 解説】
正解の理由
ジョブ A,B は起動時点で両方実行可能で、A→B の順に実行される。CPU と磁気ディスクはそれぞれ1台ずつで先着順処理。各ジョブはまず CPU を使い終えてから磁気ディスクを使う。これを時系列で追うと、全システムの稼働(最初の時刻から両ジョブ終了まで)は 22 秒(CPU の合計 15 秒 + ディスクの合計 17 秒 だが一部並列で短縮されるため総経過は22秒)となり、CPU使用率 ≒ 15/22 ≒ 0.6818、磁気ディスク使用率 ≒ 17/22 ≒ 0.7727。与えられた選択肢の中でこの値に最も近いのはイであるため正解。
解法ステップ
- ジョブの処理順と各装置の動作制約を整理する(A→B、各ジョブは CPU の後にディスク)。
- 時刻図(ガントチャート)を描く:横軸を時間、上段にCPU、下段にディスク。Aが先にCPU3秒、続けてBがCPU12秒。AはCPU終了後すぐディスクを要求するが、ディスクが空いていれば即使用。
- 時刻図から各装置の総経過時間(システム稼働終了までの時間)を読み取る。
- CPU使用率 = CPUの総使用時間 / 総経過時間、ディスク使用率 = ディスクの総使用時間 / 総経過時間を計算する。
- 得られた比と選択肢を比較して最も近いものを選ぶ。
具体的な時刻図(説明):
- 時刻0–3: CPUがAを処理(A: CPU 3s)→ 同時にディスクは空。
- 時刻3: Aはディスク要求を開始→ディスクは3–10でAを処理(7s)。同時にCPUは時刻3–15でBを処理(12s)。
- 時刻10: Aのディスク処理終了。ディスクは空くがBはまだCPUを使用中で、BはCPU終了後にディスクを要求。
- 時刻15: BがCPUを終了してディスクを要求。ディスクは時刻10–15は空いているため、Bのディスク処理は時刻15–25(10s)。
- よって全経過時間は B のディスク終了の時刻 25 秒ではなく、以下の点に注意:上の説明だと総経過が25秒になってしまうため矛盾が生じる。正しくはディスクの空き期間(10–15)を考慮し、全経過時間は最大の終了時刻 25 秒となる。CPU総使用時間は 3+12=15、ディスク総使用時間は7+10=17。したがって使用率は 15/25=0.6、17/25=0.68。これより選択肢イが正しい。
(補足:上段で「22秒」とする説明と矛盾が生じた場合、時刻図で最大終了時刻を確定することが最重要。ここは実際の時刻図から全経過時間が25秒であるため計算は 15/25=0.6, 17/25=0.68。)
選択肢別の誤答解説
- ア (0.47,0.53):総経過時間を大きく見積もるか、装置の並列性を過度に考慮して過大な分母を使った結果です。
- イ (0.60,0.68):正解。時刻図により総経過時間が25秒であり、CPU 15/25=0.60、ディスク 17/25=0.68 と一致します。
- ウ (0.79,0.89):総経過時間を小さく見積もり過ぎたケース。装置間の待ちを無視してほぼ直列処理とみなした誤りです。
- エ (0.88,1.00):ディスク使用率を1.00とするのは、ディスクが全期間常時稼働すると仮定した過ちです。実際にはディスクは一時的に空く(10–15秒)ため 1.00 にはなりません。
よくある誤解
- 誤解1: 各資源の使用率を単純に(各装置の合計処理時間)/(CPU合計+ディスク合計)で求めるミス。装置ごとの分母は「総経過時間(壁時計時間)」であり、単純合算は誤りです。
- 誤解2: ジョブ間で資源を完全に直列(合算)扱いしてしまう誤り。CPU とディスクは同時に別ジョブを処理できるため、並列実行を考慮する必要があります。
- 誤解3: 時刻図を描かずに順序や待ち発生を見落とすこと。とくにBが長いCPU処理を持つため、ディスクの重なり方が異なる点を見落としやすいです。
補足コラム
- 時刻図(ガントチャート)はリソース利用率問題で最も確実な解法です。各ジョブの開始・終了・待ちを横軸時間で可視化すると、並列性や待ち時間が直感的に理解できます。
- 本問の類題では「同時要求」や「複数ジョブの先着順」「プリエンプションの有無」など条件がわずかに変わると結果が大きく変化します。条件を読み落とさないことが重要です。
FAQ
Q1: なぜ総経過時間はジョブの合計処理時間の単純和ではないのですか?
A1: CPU とディスクは同時に異なるジョブを処理できるため、全体の「壁時計時間」は各装置が並列で稼働することで短縮されます。従って単純和ではなく時刻図で最大終了時刻を求めます。
A1: CPU とディスクは同時に異なるジョブを処理できるため、全体の「壁時計時間」は各装置が並列で稼働することで短縮されます。従って単純和ではなく時刻図で最大終了時刻を求めます。
Q2: 時刻図を描くときのコツは?
A2: 各資源ごとに独立した行を用意し、ジョブごとの使用区間を順に描画すること。ジョブが資源を要求する順序(ここでは CPU→ディスク)を必ず守る。
A2: 各資源ごとに独立した行を用意し、ジョブごとの使用区間を順に描画すること。ジョブが資源を要求する順序(ここでは CPU→ディスク)を必ず守る。
Q3: 選択肢の小数はどの程度の許容差で合格扱いされる?
A3: 午前問題では近似値が与えられることが多く、一般的に小数第二位まで合わせられるか、選択肢の中で最も近いものを選べばよいです。
A3: 午前問題では近似値が与えられることが多く、一般的に小数第二位まで合わせられるか、選択肢の中で最も近いものを選べばよいです。
関連キーワード: ガントチャート、資源利用率、CPU 使用率、磁気ディスク使用率、スケジューリング、待ち時間、午前試験対策

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

