修了試験 2013-12-15実施分 基本情報技術者試験 問22
五つのタスクを単独で実行した場合のCPUと入出力装置(I/O)の動作順序と処理時間は,表のとおりである。 優先度"高"のタスクと,優先度"低"のタスクのうち一つだけを同時に実行する。 実行を開始してから,両方のタスクの実行が完了するまでの間のCPUの遊休時間が最も小さいのは,どの優先度"低"のタスクとの組合せか。 ここで,I/Oは競合せず,OSのオーバヘッドは考慮しないものとする。 また,表の()内の数字は処理時間を示すものとする。 優先度|単独実行時の動作順序と処理時間(単位 ミリ秒)/高|CPU(3)→I/O(3)→CPU(3)→I/O(3)→CPU(2)
正答3
解説
正解は3です。 優先度「高」のタスクは、CPU3ミリ秒、I/O3ミリ秒、CPU3ミリ秒、I/O3ミリ秒、CPU2ミリ秒の順に動きます。 高タスクがCPUを使うのは0〜3、6〜9、12〜14ミリ秒で、3〜6と9〜12ミリ秒はI/O中なのでCPUが空きます。 この空き時間に低タスクがちょうどCPUを使えれば、CPUの遊休時間が小さくなります。 【解法の流れ】 選択肢3の低タスクは、CPU3、I/O2、CPU3、I/O1、CPU4の順です。 3〜6ミリ秒に低タスクがCPUを3ミリ秒使い、6〜8ミリ秒にI/Oを行います。 8ミリ秒にはCPUが空くのを待ち、高タスクがI/Oに移る9ミリ秒からCPUを3ミリ秒使います。 12〜13ミリ秒にI/Oを行い、高タスクが14ミリ秒に終わった後、14〜18ミリ秒にCPUを4ミリ秒使います。 0〜18ミリ秒の間、CPUは常にどちらかのタスクが使っており、遊休時間は0ミリ秒です。 【選択肢別解説】 1:× 低タスクはCPUを3〜5ミリ秒に使った後、I/Oが10ミリ秒まで続きます。 5〜6と9〜10ミリ秒にCPUが空き、遊休時間は2ミリ秒です。 2:× 低タスクは3〜6ミリ秒にCPU、9〜11ミリ秒にCPUを使い、11〜14ミリ秒がI/Oです。 11〜12ミリ秒にCPUが空き、遊休時間は1ミリ秒です。 3:○ 上の流れのとおり、高タスクのI/O中に低タスクがCPUをすき間なく使います。 遊休時間は0ミリ秒で最も小さくなります。 4:× 低タスクのI/Oが6〜10ミリ秒と12〜17ミリ秒で長く、9〜10と14〜17ミリ秒にCPUが空きます。 遊休時間は4ミリ秒です。 【ポイント】 この種の問題は、時間軸を1ミリ秒ずつ追い、CPUを誰が使っているかを並べて確認します。 高優先度のタスクのI/O時間と、低優先度のタスクのCPU時間がかみ合う組合せを探すのがコツです。まとめて解く
修了試験 2013-12-15実施分を通しで解く(80問)→