0

ミューテックスにはセマフォが存在するにもかかわらず、RTOS にセマフォの優先度逆転を防止する実装がないのはなぜですか。

セマフォは優先順位の逆転を防ぐ必要はありませんか?

uC/OS と GreenHills RTOS の両方で同じ状況が発生します。

前もって感謝します。

4

1 に答える 1

2

優先順位の低いタスクがセマフォを所有している場合、優先順位の逆転が発生し、優先順位の高いタスクは、優先順位の低いタスクがセマフォを解放するまでセマフォで待機する必要があります。セマフォを解放する前に、低優先度のタスクが 1 つまたは複数の中間優先度のタスクによってプリエンプトされると、高優先度のタスクの遅延が予測できなくなるため、無制限の優先度逆転が発生します。これは、優先度の高いタスクが期限に間に合うかどうかを予測できないため、期限単調分析 (DMA) に勝ります。

優先度の高いタスクと低いタスクの間で重要なリソースを共有することは、望ましい設計方法ではありません。同じ優先度のタスク間でのみリソースを共有するか、リソースへのアクセスを単一のリソース サーバー タスクに制限することをお勧めします。例として、プリント サーバー タスクとファイル サーバー タスクがあります。私たちは長い間、この慣行を提唱してきました。しかし、ますます多様で複雑なミドルウェアが RTOS にレイヤー化されているため、そのような単純な戦略を実施することは現実的ではなくなりつつあります。したがって、安全のために、制限のない優先順位の逆転を防ぐ何らかの方法を実装するのが最善です。

http://www.smxrtos.com/articles/techppr/mutex.htmで完全なリンクを確認してください。

よろしく、

オタコン

于 2013-04-02T03:00:05.727 に答える