2012-01-21 10 views
1

は、それは私のプログラムが処理を完了するまで、すべての非本質的なプロセスを一時停止するCPUを命令することは可能ですプロセス?目標は、CPUの処理時間のために競合するプロセスの量を減らすことであること、そして私は最終的に私のプログラムの時間を実行している壁時計の改善を期待しています。一時停止する非必須CPUは

だから私は、私のプログラムの実行を開始したい私のプログラムを除いて非本質的なプロセスを一時停止するCPUを指揮し、私のプログラムが終了したとき、CPUは以前に一時停止したプロセスを再開することができます。 Linux上で

+1

のですか? –

+0

私はWindows 7で動作しています – Terullian

答えて

2

、明らかに初期の戦術はのreniceを使用して、プロセスの優先度を高めることです。 -20の最大優先度、優先度が高い、nice value低いです。

プロセスのルートはgrepとして

sleep 100000 & 

(ここでは、例えば長時間実行プロセスを作成します)。

ps -ef | grep sleep 

500  **4323** 2995 0 18:44 pts/1 00:00:00 sleep 100000 
500  4371 2995 0 18:45 pts/1 00:00:00 grep --color=auto sleep 

非常に高い優先度のプロセスです。

renice -20 4323 

また、そのような特定のプロセスを停止して続行するSIGSTOPとSIGCONTシグナルを送ることができます。

skill -STOP -p <processid> 
skill -CONT -p <processid> 

残念ながら、必須ではないプロセスを構成するものは、独自の定義に依存します。プロセスリストを調べて、特定のユーザーのプロセスをすべて一時的に停止するには、次のコマンドを使用して、ルート以外のすべてのプロセスを停止できます。明らかに

skill -STOP -u <userid> 
skill -CONT -u <userid> 

なあなたのsudoのルートセッションを生み出しシェルなどの処理を停止するには注意してください。これはどのようなOS

関連する問題