戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

基本情報技術者 2011年 春期 午前(科目A) 問18


問題文

CPUが1台で、入出力装置(I/O)が同時動作可能な場合の二つのタスクA, Bのスケジューリングは図のとおりであった。この二つのタスクにおいて、入出力装置がCPUと同様に、一つの要求だけを発生順に処理するように変更した場合、両方のタスクが終了するまでのCPU使用率はおよそ何%か。
基本情報技術者 2011年 春期 午前(科目A) 問18の問題画像

選択肢

ア:43
イ:50
ウ:60(正解)
エ:75

🔒 解説は解答すると表示されます

CPUとI/Oの排他スケジューリング【午前解説】

正解の理由

図の目盛1つを1単位とすると、タスクAは「CPU 2 → I/O 8 → CPU 3 → I/O 4 → CPU 3」、タスクBは「CPU 2 → I/O 4 → CPU 2 → I/O 4 → CPU 3」です(元の図ではBは最初の2単位、Aの実行中に待っています)。入出力装置が一度に一つの要求しか処理せず、発生順に処理するように変えると、両方のタスクが終わるのは時刻25で、その間のCPUの稼働時間は両タスクのCPU時間の合計 単位です。よってCPU使用率は 、すなわち ウ の60%が正しいです。

解法ステップ

  1. 図の目盛で各ブロックの長さを読み取る(上の値)。CPU時間の合計はA=8、B=7で15単位。
  2. I/Oが1台で発生順(FIFO)に処理される場合の時系列を追う(I/O使用中の要求は待ち行列に入る)。
  3. 時刻ごとにCPUが誰を実行しているか、I/Oが誰を処理しているかを並べて書く。
  4. 両タスクが終わる時刻(25)でCPUの稼働時間15を割る:。
  5. 百分率に直して60%とする。 具体的な時刻スケジュール(単位は図の目盛)
  • 0–2: AのCPU(CPU稼働)。Bは待ち
  • 2–4: BのCPU(CPU稼働)/2–10: AのI/O
  • 4–10: BのI/O要求はAのI/Oが終わるまで待ち。CPUはアイドル
  • 10–13: AのCPU(CPU稼働)/10–14: BのI/O
  • 13–14: AのI/O要求はBのI/O待ち。CPUはアイドル
  • 14–16: BのCPU(CPU稼働)/14–18: AのI/O
  • 16–18: BのI/O要求は待ち。CPUはアイドル
  • 18–21: AのCPU(CPU稼働)でAが終了/18–22: BのI/O
  • 21–22: CPUアイドル
  • 22–25: BのCPU(CPU稼働)でBが終了
    CPU稼働合計 = 2+2+3+2+3+3 = 15、全経過時間 = 25 → CPU使用率 = 。

選択肢別の誤答解説

  • ア: 43% — CPUとI/Oの長さ比を誤って読み、I/Oの待ち時間を過小評価した結果。
  • イ: 50% — CPUの稼働時間(15単位)か全経過時間(25単位)のどちらかを読み誤った結果。
  • ウ: 60% — 図の目盛比とFIFOの逐次処理を正しく適用した値。
  • エ: 75% — I/Oが同時に動ける元の図のまま計算した値(CPU15単位÷終了時刻20)。I/Oの直列化による待ち(CPUアイドル)を考慮していない。

よくある誤解

  • I/Oが並列で動く元の図のスケジュールと混同して「I/Oの重なりでCPUは常に稼働する」と誤解する。逐次化ではI/Oが待ち行列を作りCPUにアイドルが発生する。
  • 各ブロックの長さを正確に数えず「CPUブロック=I/Oブロック」と仮定してしまうと誤った割合を出す。図の目盛で長さ比を確認すること。
  • I/Oの「要求発生順(FIFO)」という条件を見落とし、優先度や入れ替えができると誤って計算する。

補足コラム

  • この種の問題は「ブロックの相対長さを目盛で読み取る」「I/Oの並列性(同時処理/逐次処理)」「要求の処理順(FIFOか否か)」を正確に把握する力が問われます。
  • 一般式:CPU使用率 = (全タスクのCPU合計時間) / (全体の経過時間)。逐次I/Oにより経過時間はI/Oのキュー待ちで伸びるため使用率が低下します。
  • 改善策の例:I/Oデバイスの増設や非同期処理、I/OとCPUのオーバーラップを増やすスケジューリングでCPU使用率が向上します。

FAQ

Q. 図のブロック長を変えたら答えは変わりますか?
A. はい。正解は図から読み取れる長さに依存します。今回の図はタスクAが CPU2・I/O8・CPU3・I/O4・CPU3、タスクBが CPU2・I/O4・CPU2・I/O4・CPU3 で、これが根拠です。
Q. FIFOでなく優先度付きキューだったら?
A. 要求の順番が変わるため待ち順が異なり、CPUのアイドルの位置が変化して全経過時間も変わります。問題文の条件に従ってFIFO(発生順)を使うことが重要です。
Q. 元の図でI/Oが同時動作可能ならどうなる?
A. 元の図がその状態で、両タスクは時刻20で終わり、CPU使用率は になります。I/Oを逐次処理にすると待ちが生じて終了が25に延び、60%に下がります。

関連キーワード: CPU使用率、スケジューリング、I/O待ち、FIFO、CPU利用率、システム性能、待ち行列理論
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

基本情報技術者を
クイズ形式で学習しませんか?

クイズ画面へ遷移する→

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について