GNU/Linux マシンでは、「リアルタイム」(サブ ミリ秒のタイム クリティカル) タスクを実行したい場合、ほとんどの場合、カーネルにパッチを適用して適切なサポートを公開するという、時間のかかる複雑で問題が発生しやすいプロセスを実行する必要があります[ 1] [2] .
最大の問題は、リアルタイム タスクが最も有用な多くのシステムが、これらのパッチを機能させるための基本的なハードウェア要件、つまり高解像度タイマー周辺機器を備えていないことです。または、そうである場合、それはハードウェアに固有であるため、ケースバイケースでパッチに具体的に実装する必要があります。これは、CPU/命令のクロック レートが必要な時間の粒度を提供するのに十分な速さを超えている場合でも当てはまります。
それで、私の質問は、上記のリアルタイムの目標にできるだけ近づくための最良の2位の方法/トリックは何ですか? アプリケーションのソース コードで簡単に実行できること。基盤となるハードウェアや「カーネル ハッキング」についての詳細な知識は必要ありません。
プロセスの優先順位を上げ、「クリティカル」タスクのために追加のスレッドを開始し、(C で) nanosleep() のバリアントを使用することは、私がこれまでに思いついた最も見栄えの良い答え/トリックです。もっと見つけたいと思っています。