IPA過去問ドリル

平成28年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問10

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

リアルタイムOSにおいて,タスクA〜Eの発生時刻,処理時間及び優先度が次のように定められている場合,タスクCの終了時刻はタスクAが発生してから何ミリ秒後となるか。ここで,優先度は1が最も高く,優先度の高いタスクが優先的に処理されるものとする。また,OSのオーバヘッドは考慮しないものとする。 タスク|発生時刻(ミリ秒)|処理時間(ミリ秒)|優先度 A|0|5|5 B|5|10|2 C|10|15|3 D|15|10|4 E|20|5|1 (注:本サイトでは原問題の表を文字表記に変換しています)

出典:平成28年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問10

正解:ウ

解説

優先度に基づくプリエンプティブスケジューリングでは,優先度の数値が小さいほど優先度が高く,優先度の高いタスクが到着すると実行中の低優先度タスクを中断(プリエンプト)して先に実行されます。表のとおりにタスクの動作を時系列で追うと,まずタスクA(優先度5)が0〜5ミリ秒で実行されます。5ミリ秒でタスクB(優先度2)が到着し,Aの完了後の5ミリ秒からBが実行を開始します。10ミリ秒でタスクC(優先度3)が到着しますが,Bの方が優先度が高いためBが継続し,15ミリ秒でBが完了します。15ミリ秒の時点ではタスクC(優先度3,10ミリ秒到着,残り15ミリ秒)とタスクD(優先度4,15ミリ秒到着,残り10ミリ秒)が実行可能であり,優先度の高いCが15ミリ秒から実行を開始します。20ミリ秒でタスクE(優先度1,最高優先度)が到着し,Cを中断してEが実行を開始します(この時点でCは5ミリ秒分実行済み,残り10ミリ秒)。Eは20〜25ミリ秒で完了し,25ミリ秒からCの残り処理(10ミリ秒)が再開されて,25+10=35ミリ秒でCが完了します。したがって,タスクCの終了時刻はタスクAの発生から35ミリ秒後となります。

選択肢ごとの解説

  • 誤り。25ミリ秒は,タスクEが完了する直前の時点であり,この時点ではタスクCの残り処理(10ミリ秒)がまだ再開されたばかりで,Cは完了していません。
  • 誤り。30ミリ秒は,タスクCの残り処理が再開されてから5ミリ秒しか経過していない時点であり,Cの残り処理(10ミリ秒)がまだ完了していません。
  • 正しい。タスクA発生後,A(0〜5),B(5〜15),Cの前半(15〜20),E(20〜25,Cを中断),Cの後半(25〜35)の順に実行され,タスクCは35ミリ秒後に終了します。
  • 誤り。40ミリ秒は,タスクCの完了(35ミリ秒後)よりも後の時刻であり,計算結果と一致しません。
エンベデッドシステムスペシャリストの過去問を演習モードで解く