修了試験 2018-01-28実施分 基本情報技術者試験 問16
二つのタスクの優先度と各タスクを単独で実行した場合のCPUと入出力装置(I/O)の動作順序と処理時間は,表のとおりである。 二つのタスクが同時に実行可能状態になってから,全てのタスクの実行が終了するまでの経過時間は何ミリ秒か。 ここで,CPUは1個であり,I/Oの同時動作はできないものとし,OSのオーバヘッドは考慮しないものとする。 また,表の()内の数字は処理時間を示すものとする。 〔表〕優先度/単独実行時の動作順序と処理時間(ミリ秒) 高/CPU(2) → I/O(7) → CPU(3) → I/O(4) → CPU(3) 低/CPU(2) → I/O(3) → CPU(2) → I/O(2) → CPU(3)
正答4
解説
正解は4です。 優先度の異なる2つのタスクが、1個のCPUと同時動作できないI/Oを使うときの経過時間を求める問題です。 CPUもI/Oも、使用中のときは空くまで待ち、同時に要求したときは優先度の高いタスクが先に使うものとして時間をたどります。 【計算】 時刻0〜2ミリ秒は、高優先度タスクがCPUを使います。 低優先度タスクは待ちます。 時刻2〜9ミリ秒は、高優先度タスクがI/Oを使います。 この間、低優先度タスクは2〜4ミリ秒にCPUを使います。 低優先度タスクは4ミリ秒からI/Oを使いたいのですが、9ミリ秒まで待ちます。 時刻9〜12ミリ秒は、高優先度タスクがCPUを使い、低優先度タスクがI/Oを使います。 時刻12〜16ミリ秒は、高優先度タスクがI/Oを使います。 この間、低優先度タスクは12〜14ミリ秒にCPUを使い、14〜16ミリ秒はI/Oの空きを待ちます。 時刻16〜19ミリ秒は、高優先度タスクが最後のCPU処理を行い、終了します。 この間、低優先度タスクは16〜18ミリ秒にI/Oを使い、18〜19ミリ秒はCPUの空きを待ちます。 時刻19〜22ミリ秒は、低優先度タスクが最後のCPU処理を行い、終了します。 全タスクが終了するのは、時刻22ミリ秒です。 【選択肢別解説】 1:× 19ミリ秒は、高優先度タスクが終了する時刻です。 低優先度タスクには、その後もCPU処理が3ミリ秒残っています。 2:× 20ミリ秒では、19ミリ秒から始まる低優先度タスクの最後のCPU処理(3ミリ秒)が終わりません。 3:× 21ミリ秒は、低優先度タスクが18ミリ秒からすぐCPUを使えたとした値です。 実際は19ミリ秒まで高優先度タスクがCPUを使っています。 4:○ 時間をたどると、低優先度タスクの最後のCPU処理が19〜22ミリ秒となり、経過時間は22ミリ秒です。 【ポイント】 この種の問題は、CPUとI/Oの2本の時間軸を並べ、高優先度タスクから先に書き込むと解きやすくなります。 空いている資源を低優先度タスクが使うすき間を、正確に見つけることが鍵です。まとめて解く
修了試験 2018-01-28実施分を通しで解く(80問)→