過去問解きまくり研究所 ホーム

平成28年度 秋期 午前 問17

ソフトウェア

遊休時間に関する問題

五つのタスクを単独で実行した場合の CPU と入出力装置(I/O)の動作順序と処理時間は,表のとおりである。優先度“高”のタスクと,優先度“低”のタスクのうち一つだけを同時に実行する。実行を開始してから,両方のタスクの実行が完了するまでの間の CPU の遊休時間が最も短いのは,どの優先度“低”のタスクとの組合せか。ここで,I/O は競合せず,OS のオーバヘッドは考慮しないものとする。また,表の( )内の数字は処理時間を示すものとする。

〔表:単独実行時の動作順序と処理時間(単位 ミリ秒)〕

優先度単独実行時の動作順序と処理時間
高CPU(3) → I/O(3) → CPU(3) → I/O(3) → CPU(2)
答えと解説を見る

✓ これが正解ウCPU(3) → I/O(2) → CPU(3) → I/O(1) → CPU(4)

解説

隙間の6ミリ秒を使い切れる相方だけ遊休が消えます。

優先度が高いタスクの動きは組合せによらず同じなので、先にその時間割だけを引いてしまいます。CPU を 0 から 3、入出力を 3 から 6、CPU を 6 から 9、入出力を 9 から 12、CPU を 12 から 14 で使い、14 ミリ秒で終わります。すると優先度が低い側が CPU を使えるのは、3 から 6 までと 9 から 12 までの各 3 ミリ秒、それに 14 以降です。ここで各組合せの低い側の CPU 時間の合計を数えると、3 と 3 と 4 で合計 10 ミリ秒のものだけが飛び抜けて多く、残りはいずれも 7 ミリ秒です。合計 10 のものを実際に並べます。3 から 6 で 3 ミリ秒ぶん、6 から 8 で入出力、9 から 12 でもう 3 ミリ秒ぶん、12 から 13 で入出力、そして 14 から 18 で残り 4 ミリ秒ぶんです。入出力は競合しないので、高い側の入出力と重ねられます。結果として 0 から 18 まで CPU は途切れず、遊休時間は 0 になります。検算すると、全体の 18 は高い側の CPU の 8 と低い側の 10 の和にちょうど一致します。

ほかの選択肢はなぜ違うのか

出典:平成28年度 秋期 応用情報技術者試験 午前 問17

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)