2012-01-21 3 views
1

내 프로그램이 처리를 마칠 때까지 CPU가 모든 필수적이지 않은 프로세스를 일시 중지하도록 명령 할 수 있습니까? 목표는 CPU 처리 시간을두고 경쟁하는 프로세스 양을 줄이는 것이고 궁극적으로 내 프로그램의 월 클럭 실행 시간이 향상 될 것으로 기대하고 있습니다.필수가 아닌 CPU 프로세스를 일시 중지

그래서 내 프로그램을 시작하고, 내 프로그램을 제외하고 불필요한 프로세스를 일시 중지하도록 CPU에 명령하고, 프로그램이 종료되면 CPU가 이전에 일시 중지 된 프로세스를 다시 시작할 수 있습니다.

+1

어떤 OS입니까? –

+0

Windows 7에서 실행 중입니다. – Terullian

답변

2

리눅스에서 명백한 초기 전략은 renice를 사용하여 프로세스의 우선 순위를 높이는 것입니다. nice value이 낮을수록 우선 순위가 높아지며 최대 우선 순위는 -20입니다.

프로세스에 대한 루트 그렙로

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 

매우 높은 우선 순위의 프로세스; 또한 정지 등과 같은 특정 프로세스를 계속하기 위해 SIGSTOP과 SIGCONT 신호를 보낼 수 있습니다

renice -20 4323 

;

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

불행히도, 필수적이지 않은 프로세스를 구성하는 것은 사용자의 정의에 따라 다릅니다. 프로세스 목록을 검사하고 다음 명령을 사용하여 특정 사용자의 모든 프로세스를 일시적으로 중지하여 비 루트 프로세스가 아닌 모든 프로세스를 중지 할 수 있습니다.

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

분명히 sudo 루트 세션을 생성 한 쉘과 같은 프로세스를 중지하십시오.

관련 문제