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

平成30年度 秋期 午前 問16

ソフトウェア

タスクスケジューリングの問題

三つのタスクの優先度と,各タスクを単独で実行した場合の CPU と入出力(I/O)装置の動作順序と処理時間は,表のとおりである。優先度方式のタスクスケジューリングを行う OS の下で,三つのタスクが同時に実行可能状態になってから,全てのタスクの実行が終了するまでの,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)
答えと解説を見る

✓ これが正解イ3

解説

三つの仕事を時刻の順に並べ、空いた時間だけを数えます。

優先度の高いものから処理装置を使うので、時刻を追って並べていきます。最初の3ミリ秒は高い仕事が使い、その後は入出力に移ります。空いた装置を中位の仕事が2ミリ秒使い、続いて低い仕事が1ミリ秒使います。ここで三つとも入出力の待ちに入り、処理装置は誰にも使われません。高い仕事の入出力が終わる時刻まで、2ミリ秒の空きが生じます。高い仕事が残りの2ミリ秒を使って終わると、他の二つはまだ入出力の途中です。ここでもう1ミリ秒の空きが出ます。以降は中位と低位が続けて使うので、空きはこれ以上生じません。合わせて3ミリ秒が求める時間になります。入出力どうしは競合しないと断ってあるので、三つが同時に進む前提で並べられます。優先度の高い仕事が待ちに入ると、次に高いものへ順番が移ります。空いた時間だけを足します。

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

出典:平成30年度 秋期 基本情報技術者試験 午前 問16

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