[펌] 프로그램 프로세스 우선순위 및 선호도 설정 고정하여 실행하기 – 윈도우 멀티작업 최적화

출처 :  http://kimsgomul.tistory.com/6

 

글이 좀 긴데 맨 아래 최근 추가한 정보를 먼저 확인하세요.

1.

윈도우를 사용하보면 여러가지 프로그램을 띄어서 사용하는 경우가 많습니다. 윈도우 시스템이 정상 동작하는데 필요한 필수프로그램을 빼고 사용자가 필요에 의해 실행하게 되는 백그라운드 프로그램도 있는데요, 윈도우7에서 실행할 수 있는 가젯인 sidebar가 대표적인 경우라고 할 수 있겠네요. sidebar 뿐만 아니라 메일프로그램, 음악을 항상 듣는다면 푸바 같은 음악프로그램도 윈도우 백그라운드에서 항상 작동한다고 볼 수 있습니다.

이같은 다중작업(Multi Tasking)환경에서 컴퓨터의 cpu는 항상 부담을 가진다고 하는데요, cpu가 듀얼코어 이상이라면 윈도우가 알아서 각각의 cpu에 작업을 적절히 배분해서 cpu의 부담을 덜어준다고 합니다. 특히 윈도우7 같은 경우는 cpu의 멀티코어에 최적화되어 있어서 사용자는 크게 신경을 쓰지 않아도 된다고 합니다.

하지만 최적화나 속도, cpu 멀티코어 활용의 극대화 등에 민감한 사용자들을 위해서 윈도우에는 “작업관리자”를 통해서 좀더 효율적인 cpu활용을 할 수 있도록 옵션으로 제공되어 있습니다.

 

작업표시줄에 마우스커서를 위치시키고 오른쪽클릭해서 “작업관리자”를 선택하면 아래 그림과 같이 현재 실행 중인 프로그램의 프로세스들이 나열되어 있습니다. 설정하고 싶은 프로그램의 프로세스를 오른쪽클릭하면 “우선 순위 설정” 과 “선호도 설정” 이라는 항목이 나타나는데 여기서 특정 프로세스로 하여금 cpu를 어떻게 이용하게 할 것인지 선택하게 됩니다. “우선 순위 설정”은 말 그대로 cpu가 프로세스를 처리할 때 설정한 우선 순위 순서대로 처리하게 하는 옵션이고, “선호도 설정”은 멀티코어에서 특정 cpu코어에서만 처리하게 할 수 있는 옵션입니다.

제 시스템은 쿼드코어이므로 cpu가 4개가 보입니다. 보통 프로그램들은 cpu 0, cpu 1 을 많이 사용하는 경향이 있다고 하고, 앞의 두 코어가 이상하게 온도가 높으므로 백그라운드에서 실행되는 sidebar는 뒤의 두 코어만 체크하여 선호도 설정을 해주었습니다. cpu코어 하나에만 체크하셔도 무방할 것 같네요. “우선 순위 설정”은 “낮음”에 체크해서 다른 메인프로그램이 조금이나마 원활히 돌아가게 설정해두었습니다.

 

윈도우시스템을 기동하는데 필요한 필수프로세스들은 그냥 기본값으로 놔두는 것이 좋다고 합니다. 아예 바꿀 수 없도록 되어 있는 것도 있습니다.

 

 

 

 

오래된 구형 프로그램의 경우 멀티코어 CPU 환경을 지원하지 않아서 작업효율에 문제가 있거나 심지어 실행에 문제가 발생한다고도 합니다. 그럴 때 “프로세서(cpu) 선호도”를 하나만 선택해서 실행하면 문제가 해결된다고 합니다.

 

 

 

2.

윈도우를 재부팅하거나 해당 프로그램을 종료한 후 재실행했을 때에는 cpu 설정은 원래대로 초기화됩니다. 작업관리자에서 다시 하나하나 설정할려면 귀찮은데요, 윈도우를 재시작하거나 프로그램을 재실행했을 때 사용자가 설정한 값으로 고정해서 실행되게 하려면 몇 가지 방법이 있습니다.

 

 

– 윈도우의 command 명령어를 이용하는 법

 

윈도우 시작 후 특정 프로그램 실행하는 경우:

프로그램의 바로가기 아이콘을 오른쪽클릭하여 속성을 선택합니다. 바로가기 탭의 “대상“란의 앞부분에 다음과 같은 명령어를 입력합니다.

 

C:\Windows\System32\cmd.exe /c start /low /affinity 1 프로세스이름.exe

/low 부분은 “우선 순위 설정” 명령어로 다음의 값을 쓸 수 있습니다. (생략하면 기본값으로 실행됩니다. 우선 순위를 미리 지정해 놓았거나 프로그램옵션에서 우선순위를 설정할 수 있는 프로그램, 예를 들어 다음팟플레이어같은 동영상프로그램은 적용되지 않을 수 있습니다)

realtime : 실시간

high : 높음

abovenormal : 높은 우선 순위

normal : 보통

belownormal : 낮은 우선 순위

low : 낮음

 

/affinity 1 부분은 “선호도 설정” 명령어로 숫자 부분에 다음의 값을 쓸 수 있습니다. (윈도우vista 이상, 윈도우7의 경우에만 해당)

4 core인 경우의 값입니다. (16진수 mask 값입니다. 8 core인 경우에는 affinity mask 8 core 로 검색해 보세요)

 

cpu 코어 번호
 1  0
 2  1
 3  0, 1
 4  2
 5  0, 2
 6  1, 2
 7  0, 1, 2
 8  3
 9  0, 3
 10 또는 F  0, 1, 2, 3
 A  1, 3
 B  0, 1, 3
 C 2, 3
 D 0, 2, 3
 E  1, 2, 3

 

 

 

 

포터블 Thunderbird 에 적용해 보면 다음과 같이 됩니다.

 

예:

C:\Windows\System32\cmd.exe /c start /low /affinity c “D:\Portable Programs\ThunderbirdPortable” ThunderbirdPortable.exe

 

※ 띄어쓰기를 주의해야 합니다. “D:\…” 부분은 생략할 수 있습니다. 적용하면 아이콘이 바뀌는데 ‘아이콘 변경’을 클릭하여 해당 실행파일(예: ThunderbirdPortable.exe)이 위치한 디렉토리로 가서 exe파일을 선택해서 나오는 아이콘 그림을 선택하면 됩니다.

 

 

 

– 추가 정보

윈도우XP 의 경우는 /affinity 명령이 적용되지 않습니다. 따로 유틸을 사용해서 선호도 설정을 고정해야 합니다. 몇몇 유틸들이 있지만 보통 StartAffinity 라는 유틸을 많이 사용합니다.

링크로 가서 startAffinity1.3.1 binary 파일을 다운받거나 첨부한 파일을 받습니다.

 

첨부파일: StartAffinity_bin_1.3.1.zip

 

다운받은 압축파일 내에 있는 StartAffinity.exe 파일을 C:\windows\system32 폴더에 압축해제해 넣습니다.

사용하려면 [StartAffinity 프로세스이름.exe 0 1] 과 같은 명령을 입력해야 합니다. 숫자가 cpu 코어입니다.

썬더버드에 적용해보면 다음과 같습니다.

예:

C:\Windows\System32\cmd.exe /c start /low affinity “D:\Portable Programs\ThunderbirdPortable” ThunderbirdPortable.exe 0 1

 

 

 

 

– 윈도우 시작과 함께 자동 실행하기 위해 시작프로그램으로 등록하려는 경우, 다음과 같이 할 수 있습니다.

윈도우탐색기로 “D:\Portable Programs\ThunderbirdPortable” 디렉토리 안으로 가서 빈 곳에 오른쪽클릭후 ‘새로만들기‘ – ‘텍스트문서‘를 만듭니다. 파일이름은 실행파일이름과 같게 합니다(임의로 정할 수도 있습니다). 더블클릭해 텍스트파일을 열고 다음과 같은 형식으로 입력합니다.

 

start /low /affinity c “D:\Portable Programs\ThunderbirdPortable” ThunderbirdPortable.exe

 

저장한 후 텍스트파일을 오른쪽클릭하여 이름바꾸기를 선택해서 파일의 확장자 .txt 를 .bat 로 바꾸어서 입력합니다. 확인합니다.

.bat 이라는 배치파일이 만들어졌으면 속성에 들어가 아이콘을 바꾸어 줄 수 있습니다.

“D”\…” 부분은 방금 만든 텍스트파일이 실행파일과 같은 디렉토리 내에 있으면 생략해도 됩니다. 배치파일을 다른 곳에 만들어서 사용하고 싶다면 반드시 ”  “안에 경로를 입력해줘야 합니다.

 

이제 시작프로그램에 등록하기 위해 썬더버드 옵션에 들어가 ‘윈도우 시작과 함께 프로그램 실행’ 과 비슷한 옵션이 있으면 체크하고 시작프로그램에 등록합니다.

시작프로그램에 등록된 exe 실행파일을 bat파일로 바꾸기 위해 썬더버드 실행파일이 시작프로그램으로 등록된 정보가 있는 곳으로 가서 exe라는 확장자를 bat으로 바꾸어주면 됩니다.

 

데스크탑 좌측 하단의 시작버튼을 누르면 나타나는 ‘프로그램 및 파일 검색’ 란에msconfig 를 입력하고 엔터를 칩니다. 시스템구성 창이 뜨면 시작프로그램 탭을 선택합니다. 등록된 프로그램 중 썬더버드를 찾아 ‘위치’를 확인하여 기억해 둡니다.

 

다시 ‘프로그램 및 파일 검색’ 란에 regedit 를 입력하여 레지스트리 편집기를 엽니다. 기억해 둔 ‘위치’로 찾아가서 썬더버드 항목을 찾습니다. 항목을 더블클릭하여 ThunderbirdPortable.exe 라는 값의 exe를 bat으로 바꿔 입력하고 확인합니다.

 

이제 고정된 cpu 설정으로 프로그램을 자동실행할 수 있습니다.

 

 

 

 

 

3.

위의 과정들이 너무 귀찮고 번거롭다면 cpu 설정을 고정시킬 수 있는 프로그램을 따로 사용할 수 있습니다.

잘 알려진 유틸로 process Lasso 같은 프로그램이 있습니다. 프로세스 제어와 관리를 할 수 있는 유틸로 다양하고 막강한 기능으로 파워유저들이 많이 사용하는 것 같습니다.

더 알고 싶으신 분들은 아래 링크를 참고하면 좋을 것 같습니다.

http://13blog.tistory.com/10

http://bitsum.com/prolasso.php

 

좋은 유틸이긴 하나 너무 복잡한 것 같아 저는 그냥 System Explorer라는 유틸을 사용합니다. Process Explorer 와 같이 윈도우의 작업관리자의 부족함을 메꿔주는 유용한 유틸입니다. 둘 다 다양한 기능이 있지만 system explorer에만 cpu 설정을 고정시키는 기능이 있더군요. 한글도 지원하고요. 아래 링크에서 다운받으시면 됩니다. 설치할 필요가 없는 portable version을 추천드립니다.

 

http://systemexplorer.net/download-type.php

 

 

실행해서 자신에게 맞는 설정을 마친 후 ‘프로세스‘ 항목에 들어가 cpu 설정을 할 수 있습니다. cpu 설정을 고정하고 싶은 프로세스로 가서 오른쪽클릭후 우선순위설정과 선호도설정을 체크하고 반드시 “영구적“이라는 항목에 체크를 해야 됩니다.

다른 프로그램도 설정하고 싶다면 차례대로 하면 됩니다. 이 때 “영구적”이라는 항목이  체크되어 있는 경우가 있는데 그럴 때는 “영구적” 이라는 항목을 체크해제했다가 다시 체크해야 할겁니다. 그래야 정확하게 등록됩니다.

system explorer 실행폴더에 내에 ‘processescfg.db’라는 파일에 설정이 저장되어 있습니다. 파일을 notepad로 열어보면 자신이 설정한 프로세스들이 등록되어 있을 겁니다. 절대로 편집, 수정해서는 안됩니다.

 

 

등록된 cpu 설정으로 프로그램을 실행하려면 반드시 system explorer가 실행된 상태여야 합니다. 아니면 설정된 프로그램들을 먼저 실행하고 가장 나중에 시스템익스플로러를 실행해도 한번 설정된 프로그램들은 일괄적으로 등록된 값으로 cpu 설정이 바뀌게 됩니다.

한번 실행 한 후에는 유틸을 종료해도 cpu 설정된 프로그램들은 그 값으로 고정되어 있습니다. 다만 cpu 설정된 프로그램을 종료하고 다시 재실행 할 때는 유틸이 실행 중이 아니라면 기본값으로 실행됩니다.

 

 

항상 실행되어야 하는 백그라운드 프로그램은 system explorer 로 일괄변경하고 게임이나 기타 응용애플리케이션은 바로가기 대상 설정 변경이나 배치파일을 이용해서 사용하는 것도 괜찮을 것 같다는 생각입니다.

 

★ 여기까지 글을 읽으신 분들에게는 죄송한 말이지만 제가 삽질을 한 것 같네요. 위 방법도 가능하지만 그냥 간단하게 프로그램 하나로 해결할 수 있는거였네요. 저도 최근에서야 알았습니다. ㅡㅡ;; 위 방법대로 복잡하게 하지 마시고 그냥 Prio 라는 프로그램 깔아서 사용하세요. 그게 제일 나은 것 같습니다.

우선순위 prio 라고 검색해보시면 나올겁니다.

댓글 남기기