IPA過去問ドリル

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

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

優先度に基づくスケジューリングを行うリアルタイムOSを用いたシステムで,タスクの状態遷移を計測したところ,図の結果を得た。タスクが待ち,実行可能,実行の三つの状態をもつとき,(A),(B),(C) に当てはまるタスクの状態の組合せとして,適切なものはどれか。

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

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

正解:エ

解説

優先度に基づくプリエンプティブなスケジューリングでは,優先度の高いタスクが実行可能になると,優先度の低いタスクの実行を中断(プリエンプト)してでも優先的に実行されます。図では,最初の区間で優先度が最も高いタスク1が実行され,タスク2は実行可能状態,タスク3も実行可能状態で待機しています。最初の区間が終わるとタスク1は処理を終え,次に優先度の高いタスク2が実行を開始します。このとき,タスク1は自分より優先度の高いタスクは存在しないにもかかわらず実行されていないので,単に実行可能な状態ではなく,次の起動要求が来るまで「待ち」の状態に入ったと考えられます(もし実行可能のままなら,最優先タスクである以上,直ちに実行状態に戻るはずだからです)。同様に,タスク2が実行を終えた後の状態(B)も,タスク3より優先度が高いにもかかわらず実行されていない以上,「待ち」でなければなりません。そして,タスク1・タスク2がともに待ち状態になったことで,残るタスク3がようやく実行状態(C)に移ることができます。したがって,(A)=待ち,(B)=待ち,(C)=実行の組合せが適切です。

選択肢ごとの解説

  • 誤り。(A)を実行可能とすると,最も優先度の高いタスク1が実行可能であるにもかかわらず実行されないことになり,優先度に基づくプリエンプティブなスケジューリングと矛盾します。
  • 誤り。(A)を実行可能とする点が,優先度が最も高いタスク1の状態としては矛盾しており,適切ではありません。
  • 誤り。(A)を待ちとしている点は適切ですが,(B)を実行可能とすると,タスク3より優先度の高いタスク2が実行可能であるにもかかわらず実行されないことになり,矛盾します。
  • 正しい。タスク1,タスク2がともに処理を終えて待ち状態になることで,優先度が最も低いタスク3が実行状態に移ることができ,(A)=待ち,(B)=待ち,(C)=実行という状態の組合せが,プリエンプティブなスケジューリングの動作と矛盾なく成立します。
エンベデッドシステムスペシャリストの過去問を演習モードで解く