修了試験 2018-07-22実施分 基本情報技術者試験 問16
五つのタスクを単独で実行した場合のCPUと入出力装置(I/O)の動作順序と処理時間は,表のとおりである。 優先度"高"のタスクと,優先度"低"のタスクのうち一つだけを同時に実行する。 実行を開始してから,両方のタスクの実行が完了するまでの間のCPUの遊休時間が最も短いのは,どの優先度"低"のタスクとの組合せか。 ここで,I/Oは競合せず,OSのオーバヘッドは考慮しないものとする。 また,表の()内の数字は処理時間を示すものとする。 優先度|単独実行時の動作順序と処理時間(単位 ミリ秒) 高|CPU(3)→I/O(3)→CPU(3)→I/O(3)→CPU(2)
正答3
解説
正解は3です。 優先度"高"のタスクがCPUを使っていない間(I/O中)に、優先度"低"のタスクがCPUを使います。 CPUの遊休時間は「両方が終わるまでの時間」から「両タスクのCPU使用時間の合計」を引けば求まります。 高のタスク単独の流れは、CPUが0~3、I/Oが3~6、CPUが6~9、I/Oが9~12、CPUが12~14ミリ秒です。 つまり、低のタスクがCPUを使えるのは3~6、9~12、14以降です。 【計算】 高のCPU使用時間は 3+3+2=8ミリ秒です。 選択肢1の低はCPUを2+2+3=7ミリ秒使います。 CPUが3~5、I/Oが5~10、CPUが10~12、I/Oが12~14、CPUが14~17となり、終了は17ミリ秒です。 遊休時間は 17-(8+7)=2ミリ秒です。 選択肢2の低はCPUを3+2+2=7ミリ秒使います。 CPUが3~6、I/Oが6~8、CPUは高が使用中のため9~11、I/Oが11~14、CPUが14~16となり、終了は16ミリ秒です。 遊休時間は 16-(8+7)=1ミリ秒です。 選択肢3の低はCPUを3+3+4=10ミリ秒使います。 CPUが3~6、I/Oが6~8、CPUが9~12、I/Oが12~13、CPUは高の終了を待って14~18となり、終了は18ミリ秒です。 遊休時間は 18-(8+10)=0ミリ秒です。 選択肢4の低はCPUを3+2+2=7ミリ秒使います。 CPUが3~6、I/Oが6~10、CPUが10~12、I/Oが12~17、CPUが17~19となり、終了は19ミリ秒です。 遊休時間は 19-(8+7)=4ミリ秒です。 【選択肢別解説】 1:× 5~6ミリ秒と9~10ミリ秒にCPUが空き、遊休時間は2ミリ秒です。 2:× 11~12ミリ秒にCPUが空き、遊休時間は1ミリ秒です。 3:○ CPUが常にどちらかのタスクで使われ、遊休時間は0ミリ秒で最短です。 4:× 9~10ミリ秒と14~17ミリ秒にCPUが空き、遊休時間は4ミリ秒です。 【ポイント】 マルチプログラミングでは、一方のI/O中に他方がCPUを使うことでCPUの利用率が上がります。 時間軸に沿ってCPUとI/Oの使用区間を書き出すと、確実に解けます。まとめて解く
修了試験 2018-07-22実施分を通しで解く(80問)→