応用情報技術者 2013年 春期 午前2 問17
問題文
五つのジョブA〜Eに対して、ジョブの多重度が1で、処理時間順方式のスケジューリングを適用した場合、ジョブBのターンアラウンドタイムは何秒か。ここで,OSのオーバヘッドは考慮しないものとする。

選択肢
ア:8
イ:9
ウ:10
エ:11(正解)
ジョブの多重度1かつ処理時間順方式のスケジューリング【午前2 解説】
要点まとめ
- 結論:ジョブBのターンアラウンドタイムは11秒である。
- 根拠:処理時間順方式(SJF)では、到着済みの中で最も処理時間が短いジョブから順に実行されるため、Bは後回しになる。
- 差がつくポイント:ジョブの到着時刻と処理時間の両方を考慮し、待ち時間を正確に計算することが重要である。
正解の理由
ジョブの多重度が1なので同時に1つのジョブしか実行できません。処理時間順方式(Shortest Job First)では、実行可能なジョブの中から処理時間が最も短いものを選びます。
- 0秒にA(処理時間2秒)が開始し、2秒に終了。
- 2秒時点でB(4秒)、C(3秒)、D(2秒)、E(1秒)が到着済みではないため、C(3秒)はまだ到着していません。
- 1秒にBが到着、2秒にCが到着、3秒にDが到着、4秒にEが到着。
- 2秒以降は処理時間が最短のE(1秒)から順に処理され、Bは最後に実行されるため、Bの終了時刻は12秒、到着時刻1秒からの差は11秒となります。
したがって、正解はエの11秒です。
よくある誤解
処理時間順方式は単に処理時間が短い順に並べるだけと思い込み、到着時刻を無視してしまうことがあります。これにより誤った順序で計算し、ターンアラウンドタイムを誤ることが多いです。
解法ステップ
- ジョブの到着時刻順に並べる。
- 実行可能なジョブの中から処理時間が最短のものを選択。
- 選択したジョブを完了まで実行し、終了時刻を記録。
- 次に実行可能なジョブを再度処理時間順で選ぶ。
- ジョブBの終了時刻から到着時刻を引き、ターンアラウンドタイムを算出。
選択肢別の誤答解説
- ア(8秒):Bを早く実行したと誤認し、待ち時間を短く見積もった結果。
- イ(9秒):Bの待ち時間を一部考慮したが、他ジョブの影響を過小評価。
- ウ(10秒):Bの実行開始時刻を1秒早めて計算した誤り。
- エ(11秒):正しく処理時間順かつ到着時刻を考慮した結果。
補足コラム
処理時間順方式(SJF)は平均待ち時間を最小化する理論的に優れたスケジューリング方法ですが、ジョブの到着時刻が異なる場合はリアルタイムでのジョブ選択が必要です。多重度1の環境では、ジョブの到着タイミングと処理時間の両方を正確に把握することが重要です。
FAQ
Q: 処理時間順方式はプリエンプティブですか?
A: 問題文に明記がない場合は非プリエンプティブ(ジョブ完了まで実行)と考えます。
A: 問題文に明記がない場合は非プリエンプティブ(ジョブ完了まで実行)と考えます。
Q: ターンアラウンドタイムとは何ですか?
A: ジョブの到着から終了までの経過時間のことで、待ち時間と実行時間の合計です。
A: ジョブの到着から終了までの経過時間のことで、待ち時間と実行時間の合計です。
Q: 多重度が1とはどういう意味ですか?
A: 同時に実行できるジョブが1つだけであることを指します。
A: 同時に実行できるジョブが1つだけであることを指します。
関連キーワード: スケジューリング、処理時間順方式、ターンアラウンドタイム、多重度、ジョブ管理

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

