関心のあるプロセスが CPU を占有できるように、他の無関係なプロセスを一時停止するにはどうすればよいですか?

関心のあるプロセスが CPU を占有できるように、他の無関係なプロセスを一時停止するにはどうすればよいですか?

可能ですか?

  • まず、興味のあるプロセスを実行するために必要なプロセスを見つけ、
  • 次に、関係のない他のすべてのプロセスを一時停止して、関心のあるプロセスがCPUをできるだけ多く使用できるようにします。
  • 対象のプロセスの実行が終了したら、中断されたプロセスを再開しますか?

たとえば、関心のあるプロセスはdjviewです

ありがとう。

答え1

永続的な接続があれば、それは可能になるはずです (少なくとも多くの場合)。その後、/proc/PID/fdソケットと FIFO (通常のファイルが使用されている場合はより困難) をチェックし、それらに属するプロセスを見つけることができます。

しかし、他のプロセスを完全にブロックすることは危険です。間違えるとデッドロックが発生する可能性があります (また、他の問題が発生する可能性もあります)。

すべてのプロセスの CPU と I/O の優先度をダンプし、それらを調整 ( reniceionice) して、後で復元することをお勧めします。これにより、メイン プロセスのパフォーマンスが 10% 低下する可能性がありますが、安全です。

関連情報