ガーディアンタスク(ゲートキーパー、デーモンタスク)による共有リソース保護を実現
概要
優先順位の逆転とその解決戦略に関する章では、ガーディアン タスクの使用によって共有リソースの保護も実現でき、優先順位逆転の影響を改善できることを学びました。
ガードタスク(ゲートキーパー、デーモンタスク) は、共有リソースへのアクセスを保護するための専用タスクであり、このタスクは関連する共有リソースへの唯一のアクセス権を持ちます。他のタスクが対応する共有リソースにアクセスしたい場合は、ガーディアン タスクに適用して共有リソースを間接的に使用する必要があります。
通常、ガーディアンタスクはブロッキング状態になり、共有リソースを使用しているタスクが通知信号を送信するのを待ちます。通知信号があると、共有リソースへのアクセスを開始できます。
ガーディアンタスクは優先順位逆転の問題をどのように改善しますか?
優先度逆転の問題が発生するシナリオでは、共有リソースへのアクセス不足により、主に優先度の高いタスクがブロックされます。ガード タスクを使用する場合、ガード タスクの優先度が十分に高い場合、共有リソースへのアクセスは常に迅速に解決され、優先度の高いタスクがブロックされる時間が短縮されます。
要件と機能の分析
この例は、依然として前の例、つまり Task1、Tas に基づいています。