2012-01-21 2 views
1

Возможно ли заставить CPU приостановить все несущественные процессы, пока моя программа не завершит обработку? Цель состоит в том, чтобы сократить количество процессов, конкурирующих за время обработки процессора, и в конечном итоге ожидаю улучшения времени работы настенных часов моей программы.Приостановка несущественных процессов процессора

Итак, я хочу запустить свою программу, заставить CPU приостанавливать несущественные процессы, кроме моей программы, и когда моя программа завершается, CPU может возобновить ранее приостановленные процессы.

+1

какая ОС это? –

+0

Я работаю на Windows 7 – Terullian

ответ

2

On 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 корневой сеанс.

Смежные вопросы