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

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


問題文

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

選択肢

43
50
60(正解)
75

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

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

正解の理由

図の目盛から各 CPU ブロックは同じ長さ(1 単位)、各 I/O ブロックはそれより長く(図では 2 単位)見えるため、この仮定でスケジュールを時刻ベースに再現すると、CPU の総実行時間は 6 単位、全経過時間(両者終了まで)は 10 単位になります。よって CPU 使用率は 、すなわち選択肢のうち の 60% が正しいです。

解法ステップ

  1. 図の目盛を単位として各ブロック長を読み取る(CPU ブロック = 1 単位、I/O ブロック = 2 単位と仮定)。
  2. I/O が逐次(1 台で FIFO)になった場合の時系列を追う(I/O 使用中の要求はキューに入る)。
  3. 時刻ごとに CPU が誰を実行しているか、I/O が誰を処理しているかを並べて書く。
  4. CPU の稼働区間を合計し(ここでは 6 単位)、最終終了時刻(ここでは 10)で割る:
  5. 百分率に直して 60% とする。
具体的な時刻スケジュール(単位は図の目盛)
  • 0–1: A の CPU1(CPU 稼働)
  • 1–3: A の I/O(I/O が占有)/1–2: B の CPU1(CPU 稼働) → 2–3: CPU はアイドル
  • 2(B の I/O 要求発生)はキューに入り 3–5 に実行(A の I/O 完了後)
  • 3–4: A の CPU2(CPU 稼働)
  • 4–5: CPU アイドル(次の CPU 要求はまだ I/O 待ち)
  • 5–6: B の CPU2(CPU 稼働)/5–7: A の I/O(キューで実行)
  • 6–7: CPU アイドル
  • 7–8: A の CPU3(CPU 稼働)
  • 8–9: CPU アイドル(B の I/O 実行中)
  • 9–10: B の CPU3(CPU 稼働)
    CPU 稼働合計 = 1+1+1+1+1+1 = 6、全経過時間 = 10 → CPU 使用率 =

選択肢別の誤答解説

  • ア: 43% — CPU と I/O の長さ比を誤って読み、I/O の待ち時間を過小評価した結果。
  • イ: 50% — CPU の稼働時間(6 単位)または全経過時間(10 単位)のどちらかを間違えて半分とした誤り。
  • : 60% — 図の目盛比と FIFO の逐次処理を正しく適用した値。
  • エ: 75% — 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. はい。正解は図から読み取れる比率に依存します。今回の図では CPU=1、I/O=2 と読むのが自然で、これが根拠です。
Q. FIFO でなく優先度付きキューだったら?
A. 要求の順番が変わるため待ち順が異なり、CPU のアイドルの位置が変化して全経過時間も変わります。問題文の条件に従って FIFO(発生順)を使うことが重要です。
Q. 元の図で I/O が同時動作可能ならどうなる?
A. I/O が並列で動けば I/O の待ち行列が発生せず、CPU のアイドルは減少して CPU 使用率が上がります(元の図はそれを示しているケースが多い)。

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

\ せっかくなら /

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

クイズ画面へ遷移する

すぐに利用可能!

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

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