平成22年度秋期 応用情報技術者試験 午前 問18
五つのタスク A~E の優先度と,各タスクを単独で実行した場合の CPU と入出力装置(I/O)の動作順序と処理時間は,表のとおりである。優先度"高"のタスク A と B~E のどのタスクを組み合わせれば,組み合わせたタスクが同時に実行を開始してから,両方のタスクの実行が終了するまでの間の CPU の遊休時間をゼロにできるか。ここで,I/O は競合せず,OS のオーバヘッドは無視できるものとする。また,表の( )内の数字は処理時間を表すものとする。

- ア B CPU(2)→I/O(5)→CPU(2)→I/O(2)→CPU(3)
- イ C CPU(3)→I/O(2)→CPU(2)→I/O(3)→CPU(2)
- ウ D CPU(3)→I/O(2)→CPU(3)→I/O(1)→CPU(4)
- エ E CPU(3)→I/O(4)→CPU(2)→I/O(5)→CPU(2)
解答・解説を見る
正解:ウ
AI解説
優先度"高"のタスクAがCPUとI/Oを交互に使用して実行される間、CPUが空く時間帯(Aのタスクが入出力を待っている間)に、組み合わせる相手のタスクがちょうどCPUを使用するように処理時間が噛み合えば、CPUの遊休時間をゼロにできる。表に示された各タスクのCPU・I/O動作順序と処理時間を突き合わせると、タスクDと組み合わせた場合にAのI/O待ち時間とDのCPU使用時間がすき間なく一致し、CPU遊休時間がゼロになる。 ア: タスクBの処理時間の並びでは、AとBを組み合わせてもCPUが空く時間帯が生じ、遊休時間をゼロにはできない。 イ: タスクCの処理時間の並びでも同様に、AとCの組合せではCPUの空き時間が発生する。 ウ: 正しい。タスクDのCPU・I/Oの処理時間の並びが、タスクAのI/O待ち時間を過不足なく埋め合わせる形になっており、両者を組み合わせるとCPUの遊休時間をゼロにできる。 エ: タスクEの処理時間の並びでも、AとEの組合せではCPUが空く時間帯が生じ、遊休時間をゼロにはできない。 💡 この種の問題は、優先度"高"タスクのCPU区間とI/O区間を時間軸上に書き出し、相手タスクのCPU区間がちょうどI/O待ちの隙間にすき間なく収まるかを確認するとよい。
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。