修了試験 2017-01-22実施分 基本情報技術者試験 問16
三つのタスクの優先度と,各タスクを単独で実行した場合のCPUと入出力装置(I/O)の動作順序と処理時間は,表のとおりである。 三つのタスクが同時に実行可能状態になってから,全てのタスクの実行が終了するまでの,CPUの遊休時間は何ミリ秒か。 ここで,CPUは1個で1CPUは1コアで構成され,I/Oは競合せず,OSのオーバヘッドは考慮しないものとする。 また,表の()内の数字は処理時間を示す。 優先度/単独実行時の動作順序と処理時間(単位 ミリ秒) 高|CPU(3)→I/O(5)→CPU(2) 中|CPU(2)→I/O(6)→CPU(2) 低|CPU(1)→I/O(5)→CPU(1)
正答2
解説
正解は2です。 CPUは1個なので、実行可能なタスクのうち優先度の高いものから使います。 I/Oは競合しないので、各タスクのI/Oは同時に進みます。 時間を追ってCPUの使用状況をたどり、CPUが何もしていない時間を合計します。 【計算】 0〜3ミリ秒は、高のタスクがCPUを使います。 高は3〜8ミリ秒にI/Oを行います。 3〜5ミリ秒は、中のタスクがCPUを使い、5〜11ミリ秒にI/Oを行います。 5〜6ミリ秒は、低のタスクがCPUを使い、6〜11ミリ秒にI/Oを行います。 6〜8ミリ秒は、3つともI/O中なのでCPUは遊休です(2ミリ秒)。 8〜10ミリ秒は、高がCPUを使って終了します。 10〜11ミリ秒は、中と低がまだI/O中なのでCPUは遊休です(1ミリ秒)。 11〜13ミリ秒は中が、13〜14ミリ秒は低がCPUを使って終了します。 遊休時間の合計は2+1=3ミリ秒です。 【選択肢別解説】 1:× 2ミリ秒は6〜8ミリ秒の遊休だけを数えた値です。 10〜11ミリ秒の遊休も加える必要があります。 2:○ 6〜8ミリ秒の2ミリ秒と10〜11ミリ秒の1ミリ秒を合わせた3ミリ秒と一致します。 3:× 4ミリ秒は、上の追跡で求めた遊休時間の合計3ミリ秒より多くなっています。 4:× 5ミリ秒も誤りです。 CPUが遊休になるのは計3ミリ秒です。 【ポイント】 この種の問題は、横軸に時間をとってCPUとI/Oの使用状況を並べたタイムチャートを描くと確実です。 I/O中のタスクはCPUを使わないので、その間に他のタスクがCPUを使えます。まとめて解く
修了試験 2017-01-22実施分を通しで解く(80問)→