平成22年度 秋期 応用情報技術者試験 午前 問18
テクノロジ/ソフトウェア五つのタスクA~Eの優先度と,各タスクを単独で実行した場合のCPUと入出力装置(I/O)の動作順序と処理時間は,表のとおりである。優先度"高"のタスクAとB~Eのどのタスクを組み合わせれば,組み合わせたタスクが同時に実行を開始してから,両方のタスクの実行が終了するまでの間のCPUの遊休時間をゼロにできるか。ここで,I/Oは競合せず,OSのオーバヘッドは無視できるものとする。また,表の()内の数字は処理時間を表すものとする。 タスクAの優先度"高"の動作順序と処理時間:CPU(3)→I/O(3)→CPU(3)→I/O(3)→CPU(2) (注:本サイトでは原問題の表を文字表記に変換しています)
出典:平成22年度 秋期 応用情報技術者試験 午前 問18
- ア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)
正解:ウ
解説
優先度"高"のタスクAはCPU(3)→I/O(3)→CPU(3)→I/O(3)→CPU(2)の順に動作するため,CPUが空くのはA最初のI/O区間(長さ3)と2回目のI/O区間(長さ3)です。組み合わせるタスクの動作をこの二つのすき間にちょうど収まるように当てはめると,タスクDのCPU(3)→I/O(2)→CPU(3)→I/O(1)→CPU(4)は,最初のCPU3をAの1回目のI/O区間に,次のCPU3をAの2回目のI/O区間にちょうど収め,A終了後の残りCPU4も連続して実行できるため,CPUの遊休時間をゼロにできます。
選択肢ごとの解説
- ア誤り。タスクBの最初のCPU区間はAの1回目のI/O区間(長さ3)に対して長さ2で収まりますが,その後のI/O(5)がAの2回目のCPU区間・I/O区間を超えて続くため,A終了後にCPUが空く区間が生じます。
- イ誤り。タスクCは2回目のI/O(3)がAの2回目のI/O区間の終了後まで続き,A終了後にCPUが必要になる前にCPUが空く区間(遊休時間)が生じます。
- ウ正しい。タスクDのCPU区間(3,3,4)とI/O区間(2,1)は,タスクAのI/O区間(3,3)にちょうど収まりながら進み,A終了後も間隔なくCPUを使用できるため,CPUの遊休時間をゼロにできます。
- エ誤り。タスクEは最初のI/O(4)がAの1回目のI/O区間(長さ3)より長く,Aの2回目のCPU区間の途中までCPUを使えない状態が続くなど,かみ合わせに無駄が生じ遊休時間がゼロになりません。