はいあります。実際、それを行うには2つの別々の方法があります:-)
今のところ、あなたが望むことを達成するための最良の方法は、以下を行うことです:
起動中に、ブートローダーからLinuxカーネルコマンドラインにパラメーターisolcpus=[cpu_number]を追加します。これにより、CPUアフィニティを使用して特に要求されない限り、そのCPUで通常のタスクを実行しないようにLinuxスケジューラに指示されます。
IRQアフィニティを使用して、他のCPUがすべての割り込みを処理するように設定し、分離されたCPUが割り込みを受信しないようにします。
CPUアフィニティを使用して、特定のタスクを分離されたCPUに固定します。
これにより、ツリー外および開発中のパッチなしでCPU分離に関してLinuxが提供できる最高のものが得られます。
タスクは、タイマーティック割り込みやスケジューラコード、他のCPUからのIPI、ワークキューカーネルスレッドなどの他のタスクを含むLinuxコードによって時々中断されますが、中断はごくわずかである必要があります。
中断ソースの(ほぼ)完全なリストについては、 https://github.com/gby/linux/wikiの私のページをチェックしてください。
別の方法は、はるかにエレガントで動的なcpusetsを使用することですが、この時点ではいくつかの弱点があり(たとえば、タイマーの移行はありません)、古い、粗いが効果的なisolcpusパラメーターをお勧めします。
Linuxコミュニティは現在、これらすべての問題に対処し、さらに優れた分離を実現するための作業を行っていることに注意してください。