応用情報技術者 2018年 春期 午前2 問17
問題文
三つのタスク A〜Cの優先度と各タスクを単独で実行した場合のCPUと入出力(I/O)装置の動作順序と処理時間は、表のとおりである。優先順位方式のタスクスケジューリングを行う OSの下で、三つのタスクが同時に実行可能状態になってから、タスク Cが終了するまでに、タスク Cが実行可能状態にある時間は延べ何ミリ秒か。ここで、I/O は競合せず、OSのオーバヘッドは考慮しないものとする。また、表中の( )内の数字は処理時間を示すものとする。

選択肢
ア:6
イ:8
ウ:10(正解)
エ:12
三つのタスクの優先度方式スケジューリング【午前2 解説】
要点まとめ
- 結論:タスクCが実行可能状態にある時間は延べ10ミリ秒である。
- 根拠:優先度方式でCPUは高→中→低の順に割り当てられ、I/Oは競合しないため各タスクのI/O待ち時間も含めて計算する。
- 差がつくポイント:CPUとI/Oの並列性を正確に理解し、タスクの状態遷移(実行可能・待ち)を正しく追うことが重要である。
正解の理由
タスクCは優先度が最も低いため、CPUはまずタスクA(高優先度)、次にタスクB(中優先度)に割り当てられます。I/Oは競合しないため、各タスクのI/O処理は並行して進みます。タスクCが実行可能状態にある時間は、CPU待ちの時間も含めて、タスクCのCPU処理とI/O処理の合計時間から、CPUが他の高優先度タスクに占有されている時間を差し引くのではなく、タスクCがCPU待ちやI/O待ちで実行可能状態にある時間をすべて合算したものです。計算すると延べ10ミリ秒となるため、ウが正解です。
よくある誤解
タスクCの実行可能状態時間を単純にCPU処理時間の合計だけと考えたり、I/O待ち時間を除外してしまう誤りが多いです。I/Oは競合しないため、I/O待ちも実行可能状態に含まれます。
解法ステップ
- 各タスクの優先度順にCPU処理を割り当てることを確認する。
- タスクAとBのCPU処理時間を合計し、タスクCのCPU処理が開始できるタイミングを把握する。
- I/Oは競合しないため、各タスクのI/O処理は並行して進むことを理解する。
- タスクCが実行可能状態にある時間は、CPU待ち時間+I/O処理時間+CPU処理時間の合計であることを計算する。
- 計算結果から延べ時間を求め、選択肢と照合する。
選択肢別の誤答解説
- ア: 6
タスクCのCPU処理時間のみを考慮し、I/O待ち時間を無視している。 - イ: 8
CPU待ち時間の一部やI/O処理時間を正確に計算できていない。 - ウ: 10
正解。CPUとI/Oの並列性を考慮し、タスクCの実行可能状態時間を正しく合算している。 - エ: 12
タスクCの実行可能状態時間を過大評価し、他タスクのCPU占有時間を考慮しすぎている。
補足コラム
優先度方式のスケジューリングは、CPU資源を優先度の高いタスクに優先的に割り当てる方式です。I/O装置が競合しない場合、I/O待ち時間はCPUの割り当てに影響しません。したがって、I/O待ち時間もタスクが「実行可能状態」にある時間としてカウントされます。これを理解しないと、実行可能状態時間の計算で誤りが生じます。
FAQ
Q: タスクの「実行可能状態」とは何ですか?
A: 実行可能状態とは、CPUの割り当てを待っている状態やI/O処理中の状態を含み、タスクが実行を継続できる状態を指します。
A: 実行可能状態とは、CPUの割り当てを待っている状態やI/O処理中の状態を含み、タスクが実行を継続できる状態を指します。
Q: I/Oが競合しないとはどういう意味ですか?
A: 複数のタスクが同時にI/O装置を使用しても互いに干渉しないため、I/O処理は並行して進行可能であることを意味します。
A: 複数のタスクが同時にI/O装置を使用しても互いに干渉しないため、I/O処理は並行して進行可能であることを意味します。
関連キーワード: タスクスケジューリング、優先度方式、CPU割り当て、I/O待ち時間、実行可能状態

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

