応用情報技術者 2016年 秋期 午前2 問17
問題文
五つのタスクを単独で実行した場合のCPUと入出力装置 (I/O)の動作順序と処理時間は、表のとおりである。優先度 “高”のタスクと、優先度 “低”のタスクのうち一つだけを同時に実行する。実行を開始してから、両方のタスクの実行が完了するまでの間のCPUの遊休時間が最も短いのは、どの優先度 “低”のタスクとの組合せか。ここで、I/O は競合せず、OSのオーバヘッドは考慮しないものとする。また、表の()内の数字は処理時間を示すものとする。

選択肢
ア:
イ:
ウ:(正解)
エ:
CPUとI/Oの動作順序と遊休時間の最短組合せ【午前2 解説】
要点まとめ
- 結論:優先度“高”のタスクと優先度“低”のタスクの組合せでCPUの遊休時間が最も短いのは選択肢ウです。
- 根拠:CPUとI/Oの処理が交互に行われるため、I/O待ち時間に他方のCPU処理を割り当てることで遊休時間を減らせます。
- 差がつくポイント:CPUとI/Oの処理時間のバランスを見て、両タスクのCPU処理が重ならず効率的に並行できる組合せを選ぶことが重要です。
正解の理由
選択肢ウは、優先度“高”のタスクのI/O待ち時間に優先度“低”のタスクのCPU処理を効率よく割り当てられ、CPUの遊休時間が最も少なくなります。両タスクのCPU処理時間が重ならず、I/O処理中に相手のCPU処理を行うことでCPUの無駄な待ち時間を最小化できるためです。
よくある誤解
CPU処理時間が短いタスクを選べば遊休時間が減ると誤解しがちですが、I/O待ち時間との組み合わせが重要であり、単純なCPU処理時間の短さだけでは判断できません。
解法ステップ
- 各タスクのCPUとI/Oの処理時間を確認する。
- 優先度“高”のタスクのI/O待ち時間に、優先度“低”のタスクのCPU処理を割り当てられるか検討する。
- 両タスクのCPU処理が重ならないようにスケジューリングを想定する。
- CPUの遊休時間が最も短くなる組合せを選ぶ。
- 選択肢ごとに上記の条件を比較し、最適な組合せを決定する。
選択肢別の誤答解説
- ア:CPU処理時間が短いがI/O時間が長く、CPUの遊休時間が増える。
- イ:CPUとI/Oのバランスは良いが、CPU処理の重なりが発生しやすく遊休時間が増加。
- ウ:CPUとI/Oの処理時間がバランス良く、CPUの遊休時間が最も短い。
- エ:I/O処理時間が長く、CPUの遊休時間が増えるため効率が悪い。
補足コラム
CPUとI/Oの処理が交互に行われるタスクの並行実行では、I/O待ち時間を利用して他のタスクのCPU処理を行うことでCPUの遊休時間を減らすことができます。これを「CPUのオーバーラップ」と呼び、効率的なスケジューリングの基本概念です。
FAQ
Q: なぜI/O待ち時間にCPU処理を割り当てることが重要ですか?
A: CPUはI/O待ち中に遊休状態になるため、その時間を他のタスクのCPU処理に充てることで全体の処理効率が向上します。
A: CPUはI/O待ち中に遊休状態になるため、その時間を他のタスクのCPU処理に充てることで全体の処理効率が向上します。
Q: CPUの遊休時間とは何ですか?
A: CPUが処理を行わずに待機している時間のことで、システムの非効率な状態を示します。
A: CPUが処理を行わずに待機している時間のことで、システムの非効率な状態を示します。
関連キーワード: CPUスケジューリング、I/O待ち時間、タスク並行処理、遊休時間最小化、プロセス管理

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

