修了試験 2015-07-26実施分 基本情報技術者試験 問16
五つのタスクを単独で実行した場合のCPUと入出力装置(I/O)の動作順序と処理時間は,表のとおりである。 優先度“高”のタスクと,優先度“低”のタスクのうち一つだけを同時に実行する。 実行を開始してから,両方のタスクの実行が完了するまでの間のCPUの遊休時間が最も小さいのは,どの優先度“低”のタスクとの組合せか。 ここで,I/Oは競合せず,OSのオーバヘッドは考慮しないものとする。 また,表の()内の数字は処理時間を示すものとする。 優先度“高”(単独実行時の動作順序と処理時間,単位 ミリ秒):CPU(3)→I/O(3)→CPU(3)→I/O(3)→CPU(2)
正答3
解説
正解は3です。 優先度の異なる二つのタスクを同時に実行し、CPUの遊休時間を比較する問題です。 優先度“高”のタスクはCPUを優先して使い、“低”のタスクは“高”がI/O中などでCPUを使っていない間にCPUを使います。 優先度“高”は、0〜3ミリ秒にCPU、3〜6にI/O、6〜9にCPU、9〜12にI/O、12〜14にCPUを使います。 したがって“低”がCPUを使えるのは、3〜6、9〜12、14以降です。 CPUの使用時間の合計は“高”が8ミリ秒なので、遊休時間は「終了時刻-“高”と“低”のCPU時間の合計」で求めます。 【計算】 選択肢1:“低”はCPUを3〜5、I/Oを5〜10、CPUを10〜12、I/Oを12〜14、CPUを14〜17で使います。 終了は17ミリ秒、CPU時間の合計は8+7=15なので、遊休時間は2ミリ秒です。 選択肢2:“低”はCPUを3〜6、I/Oを6〜8、CPUを9〜11、I/Oを11〜14、CPUを14〜16で使います。 終了は16ミリ秒、CPU時間の合計は8+7=15なので、遊休時間は1ミリ秒です。 選択肢3:“低”はCPUを3〜6、I/Oを6〜8、CPUを9〜12、I/Oを12〜13、CPUを14〜18で使います。 終了は18ミリ秒、CPU時間の合計は8+10=18なので、遊休時間は0ミリ秒です。 選択肢4:“低”はCPUを3〜6、I/Oを6〜10、CPUを10〜12、I/Oを12〜17、CPUを17〜19で使います。 終了は19ミリ秒、CPU時間の合計は8+7=15なので、遊休時間は4ミリ秒です。 【選択肢別解説】 1:× 5〜6ミリ秒と9〜10ミリ秒に、両方のタスクがI/O中でCPUが空き、遊休時間は2ミリ秒です。 2:× 11〜12ミリ秒に両方ともI/O中となり、遊休時間は1ミリ秒です。 3:○ “高”がI/Oをしている時間に“低”のCPU処理がちょうど収まり、CPUが空く時間が生じません。 遊休時間は0ミリ秒で、四つの中で最小です。 4:× 9〜10ミリ秒と14〜17ミリ秒にCPUが空き、遊休時間は4ミリ秒です。 【ポイント】 時間軸に沿って両タスクのCPUとI/Oの区間を並べて書くと、遊休時間を確実に数えられます。 CPU処理とI/O処理をうまく重ねるほど、CPUの利用効率は高くなります。まとめて解く
修了試験 2015-07-26実施分を通しで解く(80問)→