私の現在のプロジェクトでは、2 つのレベルのタスク処理があります。VxWorks システムでは、優先度の高い (100) タスクで計算処理やその他の作業を行い、優先度の低い (200) タスクでバックグラウンド データをオンボード フラッシュ メモリに記録します。ロギングは、fwrite() 呼び出しを使用して、TFFS ファイル システムに格納されたファイルに行われます。優先度の高いタスクは定期的に実行され、バックグラウンドでログを記録できるようにスリープ状態になります。
私の予想では、優先度の高いタスクがスリープ状態になるとバックグラウンド ロギング タスクが実行され、優先度の高いタスクが起動するとすぐにプリエンプトされます。
発生しているように見えるのは、ロギング タスクを継続的に使用し続けるのに十分なデータがある場合に、優先度の高いタスクが再び実行できるようになると、バックグラウンド ロギング タスクを一時停止する際に大幅な遅延が発生することです。
Power PC アーキテクチャ上の VxWorks 6.8 で優先度の低いタスクのプリエンプションを遅らせる原因は何ですか?