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

基本情報技術者 2014年 秋期 午前(科目A)17


問題文

2台のCPUから成るシステムがあり、使用中でないCPUは実行要求があったタスクに割り当てられるようになっている。このシステムで、二つのタスクA, Bを実行する際、それらのタスクは共通の資源Rを排他的に使用する。それぞれのタスクA, BのCPU使用時間、資源Rの使用時間と実行順序は図に示すとおりである。二つのタスクの実行を同時に開始した場合、二つのタスクの処理が完了するまでの時間は何ミリ秒か。ここで、タスクA, Bを開始した時点では、CPU、資源Rともに空いているものとする。
基本情報技術者 2014年 秋期 午前(科目A) 問17の問題画像

選択肢

120
140
150
200

二 CPU システムで共有資源を排他的に使うタスクの完了時間算出【午前2 解説】

要点まとめ

  • 結論:二つのタスクを同時開始すると、両方の完了は最大で 140 ミリ秒後に終了します。
  • 根拠:A が から資源Rを 50ms 使用し でR開放、B はその後 からRを使用して に開放、B の後半 CPU が
  • 差がつくポイント:二つのCPUがあるためCPU待ちが発生せず、R の占有順(先にRを要求したAが先)で全体の所要時間が決まります。

正解の理由

二つのCPUが独立に動作するため、最初のCPUフェーズは並列に進行します。時系列で見ると以下の通りです。
  • A: CPU10()→ R50()→ CPU60(
  • B: CPU40()→ R50(待ち、)→ CPU30(
A は先に資源Rを要求するためRを先に獲得し、B はR を待つことになります。A の最終 CPU は に終了、B は に終了するため全体の完了は ms です。したがって正解は イ: 140 です。

よくある誤解

  • 「Rは並列に使える」と考える誤り:R は排他的なので同時使用は不可で、要求順で待ちが発生します。
  • 「CPU が余っているから待ちがなくなる」と短絡的に考える:CPU が空いていても、R を待っているタスクはCPUを使えないので総合時間は変わります。
  • 「B の R 使用が から始まる」と誤認する:A が先に R を取得するため B は R を から使用します。

解法ステップ

  1. 各タスクの時系列を分割(CPU / R / CPU)で整理する。
  2. 同時開始なので初期のCPU区間は並列に実行できることを確認する。
  3. 各タスクが最初にRを要求する時刻を求める(A: , B: )。
  4. R は排他なので早く来た方(A)が先に使用し、後発(B)は終了まで待つ。
  5. 待ち時間を考慮して各区間の開始・終了時刻を順に算出する。
  6. 全タスクの終了時刻の最大値を求め、所要時間とする(今回 ms)。

選択肢別の誤答解説

  • ア: 120
    誤りの典型例は「R の待ちが発生せず、両者とも に終わる」と考えることです。実際にはBはRを待ち、最終 CPU を に実行するため 120ms には終わりません。
  • イ: 140
    正解。上記の時系列計算により全体完了は です。
  • ウ: 150
    150ms を選ぶ誤りは、R の排他時間やCPUの並列利用を二重に考慮(過剰に待たせる)した結果です。今回の条件下では余計な待ち時間は発生しません。
  • エ: 200
    過度に保守的な見積もりで、R を両者が直列で全部待つ(あるいは何らかの追加待ちが入る)ように誤解したケースです。実際はA が先にRを取りBは一回だけ待つため 200ms にはなりません。

補足コラム

  • クリティカルパスの考え方:今回の全体所要時間は「A の後半 CPU」と「B の後半 CPU」の終了時刻の最大値で決まります。R によりタスク間が直列化される区間が全体時間に影響します。
  • スケジューリング視点:CPU が複数あっても共有資源の排他がボトルネックになれば CPU 並列性の効果は限定的になります。資源保護(mutex)や優先度制御の設計が重要です。

FAQ

Q1: もしCPUが1台だけならどうなる?
A1: 1台しかないと初期CPU区間で順番待ちが発生します。どちらが先にCPUを得るかでRの要求時刻と全体時間が大きく変わります(一般に所要時間は増加)。
Q2: R がプリエンプト可能(中断可能)なら結果は変わる?
A2: はい。R の中断・切替が可能なら別のタスクが途中でRを使えるため待ち時間が短縮され得ます。ただし実際の共有資源は多くの場合排他的で中断不可です。
Q3: タスク開始が同時でない場合の基本的な考え方は?
A3: 各タスクの「R要求時刻」を基準にして、その時点でRが空いているかを判定し、時刻を前後にシミュレーションして最終終了時刻を求めます。

関連キーワード: CPUスケジューリング、クリティカルセクション、排他制御、リソース競合、タスクスケジューリング、バリアント分析
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

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

クイズ画面へ遷移する

すぐに利用可能!

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

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