RTOS 割り込み - 割り込みとタスク共有リソース間の競合の例

RTOS 割り込み - 割り込みとタスク共有リソース間の競合の例

概要

タスク間のリソース共有に関する前述の例では共有リソースの概念と、共有リソースの正確性と整合性に対する脅威について学びました。

割り込みが導入されると、割り込み間、および割り込みとタスク間の共有リソースへのアクセスと使用の問題も発生します。前述したように、割り込みはタスクに対して絶対的な優先度を持っているため、割り込みは非常に優先度の高いタスクとみなすことができ、割り込み間にも優先度が存在します。高優先度の割り込みと低優先度の割り込みの間の共有リソースの競合現象は、割り込みとタスクの間の共有リソースの競合現象に非常によく似ています。なぜなら、優先度の低い側は常に CPU を使用する権利を奪われるからです (優先度の高い割り込みは、優先度割り込み > 低優先度割り込み > 高優先度タスク > 低優先度タスク)。

そこで、ここでは割り込みとタスクのリソース共有の例を示し、この問題への対処方法を紹介します。読者は、紹介したいくつかの方法を割り込みと割り込み間の共有リソースの保護と処理に適用できます。このセクションでは、割り込みとタスク間の共有リソースの競合の例を紹介するだけで、次の章でいくつかの解決策を説明します。

要件と機能の分析

次に、タスクが共有変数を指定された値に設定し、共有変数の値を取得する例を示します。タスクが共有変数の値を設定すると、タスクが共有変数の値の使用を終了する前に割り込みがトリガーされ、値が変更されます。このとき、タスクによって取得された値は次のように改ざんされます。

おすすめ

転載: blog.csdn.net/wangyx1234/article/details/128227091