組込み・ファームウェア

RTOSで起こる優先度逆転の説明として正しいものはどれか。

  1. A低いタスクが持つ資源を高いタスクが待っている間に、中くらいのタスクが低いタスクを止めて動き続け、高いタスクが長く待たされる
  2. Bタスクの優先度の数値が、設定とは逆に解釈される不具合
  3. C優先度の高いタスクが、低いタスクより必ず後に実行される決まり
答えと解説を見る

正解:A. 低いタスクが持つ資源を高いタスクが待っている間に、中くらいのタスクが低いタスクを止めて動き続け、高いタスクが長く待たされる

低いタスクがミューテックスを持っている間に高いタスクがそれを待つと、高いタスクは低いタスクが手放すまで待ちます。そこに資源と関係のない中くらいのタスクが動き出すと、低いタスクは止められて資源を手放せず、結果として高いタスクが中くらいのタスクに待たされます。1997年の火星探査機マーズ・パスファインダーでは、これが原因でシステムのリセットが繰り返されました。

  • A. 正しい。1997年の火星探査機でも問題になりました。
  • B. 数値の解釈の誤りのことではありません。
  • C. そのような決まりではありません。
この分野を解く 分野ページへ

組込み・ファームウェアのほかの問題

  1. 優先度逆転を防ぐために使われる「優先度継承」の考え方として正しいものはどれか。
  2. RTOSで、センサを読むタスクから表示するタスクへデータを渡すのに、キュー(メッセージキュー)を使う利点として正しいものはどれか。
  3. ハードリアルタイムとソフトリアルタイムの違いとして正しいものはどれか。
  4. ウォッチドッグタイマをリセットする(キックする)処理を、1 msごとのタイマ割り込みハンドラの中で無条件に行うのが良くない理由として正しいものはどれか。
  5. 組込み機器のブートローダの役割として正しいものはどれか。