リアルタイム優先順位を変更しても目立つ効果はありません。

リアルタイム優先順位を変更しても目立つ効果はありません。

私たちは、RaspbianがインストールされているRaspberry PiでソフトウェアPWMを使用して最良の結果を得ようとしました。 GPIOピンからPWMを起動するPythonスクリプトを作成し、オシロスコープを使用して結果を観察しました。

効果は大きくなく、遅延は許容できません。

その後、ソフトウェアPWMプロセスのリアルタイム優先順位を99に設定し、スケジュールをリアルタイムループに変更し、fifo(1865はプロセスpid)に変更しました。

sudo chrt -f -p 99 1865
sudo chrt -r -p 99 1865

優先順位変更前と同様に動作します。

みんな他のプロセスはリアルタイムではなく優先順位で実行されます。ただし、タイマーとUSBは毎秒約3000回の割り込みを発生させます。

これに質問答えは次のとおりです。

...一般的なコアはリアルタイム優先順位を処理し、通常のジョブよりも高い優先順位を与えます。これらのジョブは通常、CPUに自発的に譲渡されるまで実行されます。

優先順位を変更しても顕著な効果がない理由をご存知ですか?リアルタイム優先順位が割り込み中に何が起こるかに影響しますか?

答え1

プロセスがユーザー空間で実行されており、ユーザー空間の他のプロセスコンテキストでリアルタイムの優先順位が与えられたため、顕著な効果はありませんでした。

ただし、カーネル空間は依然として割り込みとしてロードされ、他のプロセスがプロセッサ時間の(小さな)共有を取得すると、システムコールを開始してプロセスのリアルタイム優先順位が意味のないカーネル空間に移行される可能性があります。

割り込みはすべてカーネル空間で発生するため、リアルタイム優先順位の影響を受けません。

関連情報