2012-01-21 41 views
1

是否可以命令CPU暂停所有非必要进程,直到程序完成处理?我们的目标是减少竞争CPU处理时间的进程数量,并且我最终希望改进我的程序的挂钟运行时间。暂停非必需的CPU进程

所以我想开始我的程序运行,命令CPU暂停除了我的程序以外的非必要进程,并且当程序终止时,CPU可以恢复先前暂停的进程。

+1

这是什么操作系统? –

+0

我在Windows 7上运行 – Terullian

回答

2

在linux上,显而易见的最初策略是使用renice增加进程的优先级。 nice value越低,优先级越高,最高优先级为-20。

(在这里,我创建例如长时间运行的进程)

sleep 100000 & 

作为根的grep的过程;

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> 

不幸的是,什么构成非本质过程取决于你自己的定义。您可以通过检查进程列表并使用以下命令临时停止所有特定用户的进程来停止所有非root进程:

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

显然要小心停止进程,如产生sudo root会话的shell。