組込み・ファームウェア
RTOSで起こる優先度逆転の説明として正しいものはどれか。
- A低いタスクが持つ資源を高いタスクが待っている間に、中くらいのタスクが低いタスクを止めて動き続け、高いタスクが長く待たされる
- Bタスクの優先度の数値が、設定とは逆に解釈される不具合
- C優先度の高いタスクが、低いタスクより必ず後に実行される決まり
答えと解説を見る
正解:A. 低いタスクが持つ資源を高いタスクが待っている間に、中くらいのタスクが低いタスクを止めて動き続け、高いタスクが長く待たされる
低いタスクがミューテックスを持っている間に高いタスクがそれを待つと、高いタスクは低いタスクが手放すまで待ちます。そこに資源と関係のない中くらいのタスクが動き出すと、低いタスクは止められて資源を手放せず、結果として高いタスクが中くらいのタスクに待たされます。1997年の火星探査機マーズ・パスファインダーでは、これが原因でシステムのリセットが繰り返されました。
- A. 正しい。1997年の火星探査機でも問題になりました。
- B. 数値の解釈の誤りのことではありません。
- C. そのような決まりではありません。