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

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


問題文

タスクスケジューリング方式の説明のうち、特定のタスクがCPU資源の割当てを待ち続ける可能性が最も高いものはどれか。

選択肢

各タスクの優先度を決めて、優先度が高い順に実行し、CPU割当てまでの待ち時間の長さに応じて優先度を徐々に上げていく。
各タスクを実行可能待ち行列に置かれた順に実行し、一定時間が経過したら実行を中断して実行可能待ち行列の最後尾に加える。
処理予定時間が最も短いタスクから順に処理を実行する。現在実行中の処理が終了するか、又は何らかの要因によって中断されたとき、次のタスクを開始する。(正解)
タスクがシステムに到着した順に実行可能待ち行列の最後尾に加え、常に実行可能待ち行列の先頭のタスクにCPUを割り当てる。

##: タスクスケジューリング方式の説明のうち、特定のタスクがCPU資源の割当てを待ち続ける可能性が最も高いものはどれか【午前2 解説】

要点まとめ

  • 結論: 正解は (処理予定時間が最も短いものから処理する方式、SJF)で長い処理が飽和状態で待ち続ける恐れがあります。
  • 根拠: SJF は短い処理を優先するため短ジョブ群が連続して到着すると長ジョブが後回しになり、待ち続ける(スタベーション)可能性が高くなります。
  • 差がつくポイント: 優先度方式におけるエージング(待ち時間で優先度上昇)やラウンドロビンはスタベーション防止策である点を押さえておくと解答が速くなります。

正解の理由

ウは「処理予定時間が最も短いタスクから順に処理する」いわゆる SJF(Shortest Job First)を指し、短い仕事が次々到着すると長い処理がいつまでも後回しにされるため特定タスクがCPU割当てを待ち続ける(スタベーション)可能性が最も高くなります。選択肢アはエージングでスタベーションを回避し、イ(ラウンドロビン)とエ(先着順/FCFS)は公平性が高く長時間待ちの発生が起きにくいため、ウが最もリスクが高いと判断できます。

よくある誤解

  • 「SJF は平均待ち時間が短いから常に優秀」と考える誤解:平均は良くても長ジョブが飽和すると特定ジョブが永続的に待つ可能性があります。
  • 「先着順(FCFS)は公平だから問題ない」と決めつける誤解:FCFS は順序を守るが到着パターンによっては応答性が悪くなることを見落としがちです。
  • 「プリエンプティブであればスタベーションは起きない」との誤解:プリエンプティブでも優先度が固定であれば低優先度タスクは滅多に実行されないことがあり得ます。

解法ステップ

  1. 各選択肢がどのスケジューリング方式を指すかを対応付ける(優先度+エージング、ラウンドロビン、SJF、FCFS)。
  2. 各方式の公平性・スタベーション(飢餓)発生リスクを比較する。
  3. スタベーションが最も起きやすい方式を選ぶ(短ジョブ優先の SJF が該当)。

選択肢別の誤答解説

  • ア: 各タスクに優先度を割り当て、待ち時間で徐々に優先度を上げる方式。エージングにより低優先度の飢餓を防ぐためスタベーションは起こりにくい。
  • イ: 実行可能待ち行列の順に実行し、一定時間で中断して最後尾に戻すラウンドロビン。時間分割で公平にCPUを分配するため長時間待ちの恒常化は起きにくい。
  • ウ: (SJF) 処理予定時間が最も短いタスクから処理する方式。短ジョブが連続到着すると長ジョブが後回しになり特定タスクが待ち続ける(正解)。
  • エ: 到着順に待ち行列の最後尾に加え、常に先頭にCPUを割り当てる FCFS(先着順)。順番に処理されるため理論上は飢餓(スタベーション)は起きにくい。

補足コラム

SJF(Shortest Job First)は平均待ち時間やスループットを改善する効果がある一方、待ち時間の分布が偏りやすい点が問題です。スタベーション(飢餓、starvation)は主に優先度方式で顕著ですが、SJF のように「短い処理を常に優先する」方式でも発生します。実システムではエージング、ラウンドロビン、複合スケジューリング(複数キューと優先度の組合せ)などでバランスを取ります。

FAQ

Q1: SJF と SRTF(Shortest Remaining Time First)は同じですか?
A1: 関連していますが異なります。SJF は非プリエンプティブ(開始したら完了まで実行)で、SRTF はプリエンプティブで実行中のタスクを短い残り時間のタスクに乗り換えることがあります。SRTF の方が待ち時間は短くなりやすいが、長ジョブのスタベーションリスクは依然存在します。
Q2: スタベーションを防ぐにはどうすればよいですか?
A2: エージング(待ち時間に応じて優先度を上げる)、ラウンドロビンの導入、優先度の上限下限設定などの対策が有効です。
Q3: 試験での解答のコツは?
A3: 各方式の「公平性」「平均待ち時間」「スタベーションの有無」を即座に比較し、「特定タスクが待ち続ける(スタベーション)」に直結する方式を選ぶことが速いです。

関連キーワード: タスクスケジューリング、SJF、Shortest Job First、ラウンドロビン、優先度スケジューリング、エージング、スタベーション、フェアネス、プリエンプティブ、ノンプリエンプティブ
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

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

クイズ画面へ遷移する

すぐに利用可能!

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

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