IPA過去問ドリル

平成25年度 春期 基本情報技術者試験 午前 問18

テクノロジ/ソフトウェア

三つのタスクの優先度と,各タスクを単独で実行した場合の CPU と入出力装置(I/O)の動作順序と処理時間は,表のとおりである。三つのタスクが同時に実行可能状態になってから,全てのタスクの実行が終了するまでの,CPU の遊休時間は何ミリ秒か。ここで,I/O は競合せず,OS のオーバヘッドは考慮しないものとする。また,表の()内の数字は処理時間を示す。 優先度:単独実行時の動作順序と処理時間(単位 ミリ秒) 高:CPU(3)→I/O(5)→CPU(2) 中:CPU(2)→I/O(6)→CPU(2) 低:CPU(1)→I/O(5)→CPU(1) (注:本サイトでは原問題の表を文字表記に変換しています)

出典:平成25年度 春期 基本情報技術者試験 午前 問18

正解:ウ

解説

各タスクが単独実行時と同じCPU→I/O→CPUの順序で動くとして,優先度の高い順にCPUを割り当てるスケジューリングをたどると,高優先度タスクがI/Oに入っている間に中・低優先度タスクが順にCPUを使いますが,全タスクがI/O中でCPUを必要とするタスクがない時間帯が2回(合計3ミリ秒)生じ,これがCPUの遊休時間になります。

選択肢ごとの解説

  • 誤り。1ミリ秒では,シミュレーション上生じる二つの遊休区間のうち一方しか数えていません。
  • 誤り。2ミリ秒は,遊休区間の一方(2ミリ秒)だけを数え,もう一方(1ミリ秒)を見落とした場合の値です。
  • 正しい。優先度順にCPUを割り当てて動作をたどると,CPUが遊休になる区間が合計3ミリ秒(2ミリ秒+1ミリ秒)生じます。
  • 誤り。4ミリ秒は,遊休区間を多めに数えすぎた場合の値です。
基本情報技術者の過去問を演習モードで解く