본문 바로가기

컴퓨터&인터넷

프로그램 프로세스 우선순위 및 선호도 설정 고정해서 실행하기 (윈도우 멀티작업 최적화)

 

아래 글 생략하고 하단에 추가한 프로그램 사용 추천합니다.



# 윈도우를 사용하다보면 여러 프로그램들을 동시에 띄어서 사용하는 경우가 많다.

 

윈도우 시스템이 정상 작동하는데 필요한 필수 프로그램 외에도 사용자가 실행해놓은 백그라운드 프로그램도 있다.

윈도우7 가젯인 sidebar가 대표적이고 메일프로그램, 뮤직플레이어도 항상 실행해놓고 사용하게된다.

그런 다중작업(멀티태스킹) 환경에서 cpu는 항상 부담을 가진다.

cpu가 2개(듀얼코어) 이상이라면 윈도우는 알아서 각각의 cpu 코어나 쓰레드에 작업을 적절히 배분해서 cpu의 부담을 덜어주게된다.

물론 프로그램 자체에서도 cpu 멀티 쓰레드 활용이 가능하도록 만들어져 있어야 한다.

윈도우7 이상의 운영 체제는 cpu 멀티코어 작업에 최적화되있어서 사용자는 크게 신경을 쓰지 않아도 된다.

 

코어는 하드웨어 자체에서 물리적으로 나눠진걸 말할때 쓰는 용어고, 쓰레드는 소프트웨어적으로 나눠서 처리하는걸 말한다.

cpu가 4코어 8쓰레드라면 4개의 물리적인 코어가 있고 한 코어가 다시 소프트웨어적으로 두개로 나눠져 처리된다.

그래서 작업관리자로 보면 모두 8개의 cpu가 있다. 물론 물리적으로 나눠서 처리하는게 당연히 성능이 더 좋다.

 

그래도 프로그램 최적화나 속도, cpu 멀티코어 활용 극대화 등에 민감한 사용자들을 위해 윈도우에서는 「작업관리자」를 통해서 좀더 효율적인 cpu활용을 할 수 있도록 프로세스 우선순위선호도 설정을 옵션으로 제공하고 있다.

 

작업표시줄에 마우스 커서를 놓고 우클릭해서 작업관리자를 클릭하면 아래 그림과 같이 현재 실행 중인 프로그램의 프로세스들이 나열되어 있다.

설정하고 싶은 프로그램의 프로세스를 우클릭하면 『우선 순위 설정』 과 『선호도 설정』 이라는 항목이 나타나는데, 여기서 특정 프로세스로 하여금 cpu를 어떻게 이용하게 할 것인지 선택할 수 있다.

 

 

우선 순위 설정은 말 그대로 cpu가 프로세스를 처리할 때 설정한 우선 순위 순서대로 처리하게 하는 옵션이고, 선호도 설정은 멀티코어에서 특정 cpu코어에서만 처리하게 할 수 있는 옵션이다.

 

쿼드코어 cpu는 cpu코어가 4개 보인다.

일반적인 프로그램들은 cpu0, cpu1 을 많이 사용하는 경향이 있다고 하고, 3570k cpu는 앞의 두 코어가 이상하게 온도가 높다.

그래서 백그라운드에서 실행되는 sidebar는 뒤의 두 코어만 체크해서 선호도 설정을 했다.

cpu코어 하나에만 체크해도 될듯하다.

우선 순위 설정은 「낮음」에 체크해서 다른 메인프로그램들이 조금이나마 원활히 돌아가게 설정했다.

 

 

△ 윈도우 시스템이 작동하는데 필요한 필수 프로세스들은 우선순위와 선호도를 그냥 기본값으로 놔둬야된다.

아예 바꿀 수 없도록 되어 있는 것도 있다.

 

 

△ 오래된 구형 프로그램의 경우 멀티코어 CPU 환경을 지원하지 않아서 작업효율에 문제가 있거나 심지어 실행이 안될 수도 있다고 한다.

그럴 때는 「프로세서 선호도」를 하나만 선택해서 실행하면 문제가 해결될 수도 있다.

 

 

# 윈도우를 로그아웃 또는 재부팅하거나 해당 프로그램을 종료한 후 재실행하면 cpu 설정은 원래대로 초기화된다.

 

작업관리자에서 다시 하나하나 설정할려면 귀찮다.

프로그램을 재실행했을 때 사용자가 설정한 값으로 고정해서 실행되게 하는 방법이 몇가지 있다.

 

- 명령프롬프터에서 명령어를 이용하는 방법:

프로그램 실행파일을 우클릭해서 바탕화면이나 다른 곳에 바로가기를 만든다.

프로그램의 바로가기 아이콘을 우클릭하여 「속성」을 선택한다.

속성탭의 「대상」 부분에 아래와 같은 식으로 명령어를 입력한다.

 

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

 

/low 부분은 「우선 순위 설정」 명령어다. 생략하면 기본값으로 실행된다.

 

우선 순위를 개발자가 미리 지정해 놓았거나 프로그램 옵션에서 우선순위를 설정할 수 있는 프로그램, 예를 들어 다음팟플레이어같은 동영상프로그램은 적용되지 않을 수 있다.

어떤 프로그램들은 고정해놓고 사용자가 못바꾸도록 되어 있는 것도 있다.

 

 

cpu 우선순위 값은 아래의 값을 쓸 수 있다.

 

realtime : 실시간
high : 높음
abovenormal : 높은 우선 순위
normal : 보통
belownormal : 낮은 우선 순위
low : 낮음

 

/affinity 1 부분은 「선호도 설정」 명령어다.

숫자 부분에 다음의 값을 쓸 수 있다. cpu갯수에 따라 값이 다르다. (윈도우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

 

썬더버드에 적용하면 다음과 같이 된다.

 

 

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

 

** 띄어쓰기를 주의.

 

바로가기 아이콘이 exe실행파일 폴더 위치에 같이 있으면 'D:\…' 부분은 생략할 수 있다.

적용하면 아이콘이 바뀌는데 「아이콘 변경」을 클릭해서 실행파일(ThunderbirdPortable.exe)이 위치한 디렉토리로 간 후, exe파일을 선택해서 나오는 아이콘 그림을 선택하면 된다.

 

** 윈도우 xp:

윈도우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드라이브에 있는 썬더버드 프로그램을 예로 들면,

 

윈도우탐색기로 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 라는 값의 exebat으로 바꿔 입력하고 확인을 누른다.

레지스트리값이 수정되면 고정된 cpu 설정으로 프로그램이 자동실행되게된다.

 

 

시작프로그램에 등록하는 방법은 이 외에도 몇가지가 있다.

그냥 간단하게 배치파일의 바로가기를 만들어서 윈도우 시작프로그램 폴더에 넣어버려도 된다.

시작프로그램 폴더 경로는

 

C:> Users > 사용자이름 > AppData > Roaming > Microsoft > Windows > Start Menu > Programs > Startup

 

에 있다.

 

아래 두 링크 참고:

http://mainia.tistory.com/2658

http://raduradu.tistory.com/363

 

# 참고 링크:



http://www.eightforums.com/tutorials/40287-cpu-priority-shortcut-program-create-windows.html

http://www.eightforums.com/tutorials/40339-cpu-affinity-shortcut-program-create-windows.html

 

 

4. 위의 과정들이 너무 귀찮고 번거롭다면 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

 

system explorer를 실행해서 「프로세스」 항목에 들어가면 cpu 설정을 할 수 있다.

cpu 설정을 고정하고 싶은 프로세스에 우클릭후 「우선순위설정」과 「선호도설정」을 체크하고, 「영구적」이라는 항목에 체크를 하면 된다.

영구적이라는 항목이 체크되어 있는 경우가 있을 수 있는데 그럴 때는 영구적이라는 항목을 체크해제했다가 다시 체크해야 정확하게 등록되는 것 같다.

system explorer의 cpu설정은 프로그램 폴더 내에 processescfg.db 라는 파일에 설정이 저장되어 있다.

파일을 notepad로 열어보면 자신이 설정한 프로세스들이 등록되어 있다. 절대로 편집, 수정해서는 안된다.

 

 

윈도우7 시작 프로그램 추가, 등록 또는 삭제하는 방법

시작 프로그램에 등록된 앱들은 컴퓨터를 부팅하고 나면 자동으로 실행이 됩니다. 컴퓨터를 시작하고 나서 매번 띄우는 프로그램이 있다면 시작 프로그램에 등록해 보세요. 예를 들어 업무용

mainia.tistory.com

 

 

등록된 cpu 설정으로 프로그램을 실행하려면 system explorer가 미리 실행된 상태여야 한다.

아니면 설정된 프로그램들을 먼저 실행하고 나중에 시스템익스플로러를 실행해도 한번 설정된 프로그램들은 일괄적으로 등록된 값으로 cpu 설정이 바뀐다.

 

프로그램이 실행 중이면 system explorer를 종료해도 cpu 설정된 프로그램들은 그 값으로 고정되어 있다.

물론 cpu설정된 프로그램을 종료하고 다시 재실행 할 때는 system explorer를 실행해야된다.

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

 

 

# 추가 1

위 삽질같은 방법으로도 되지만 간단한 프로그램이 있었다.

그냥 Prio 라는 프로그램 설치해서 사용하면 된다. 우선순위 prio 라고 검색해서 홈페이지에서 다운로드받으면 된다.

- http://www.prnwatch.com/prio/

 

 

# 그 외 프로세스 우선순위 설정 프로그램 모음:

https://www.raymond.cc/blog/permanently-set-process-priority-in-windows-task-manager-with-prio/

1. Process Lasso

2. Prio (Process Priority Saver)

3. Process Hacker

4. Process Tamer

5. Bill2's Process Manager

6. System Explorer

 

더보기

 

http://windowsforum.kr/index.php?mid=data&page=2&document_srl=8202242

 

굳이 이 프로그램을 만든 이유는

포터블형 시스템을 좋아하는 지라, 상주하는 프로그램들을 싫어해서

만든 프로그램입니다.

 

- 사용법

1. 작업관리자 세부정보탭에서 우선순위를 고정시키고 싶은 프로그램명을 확인한다.

2. 프로세스명 입력란에 (.exe)를 제외한 프로세스명만 입력한다.

3. 우선순위에서 설정하고 싶은 레벨을 선택한다.

4. 설치버튼을 누른다.

입니다. 간단하죠?

 

상주하는 시스템없이 적용가능 한 프로그램으로써, 한번 적용하면, 

윈도우를 재설치 하기 전까지, 매 게임이 실행할 때마다 자동으로

우선순위를 지정합니다.

수정한 내용을 원래대로 돌리고 싶은데 모르시겠다면?

동일 폴더에 아래와 같은 내용으로 적용할 때마다 로그가 기록되어

표기해주니, 본인이 언제 무슨 프로세스를 지정하였는지 확인이 가능합니다.

 

# 주의사항

본 프로그램은 관리자권한으로 실행이 필수이나, 관리자권한으로 실행되지 않았을 경우, 특정조건하에 자동으로 관리자권한으로 재실행합니다.

윈도우10 환경에서 제작되어 테스트하였습니다.

제작언어 - 오토핫키

다운로드 - 첨부파일에 있습니다.

감사합니다(__)

 

2017.01.13.오후 5시 22분 내용추가

-적용 확인 방법은 적용하신 프로그램을 실행하시고, 작업관리자 세부정보 탭에서

프로세스명을 찾으신 뒤 우클릭 하셔서 우선순위로 확인해보시면 됩니다.

내용 추가

-위 유틸은 단순하게 레지스트리를 등록하는데 있어서 필요한 프로세스명과 우선순위만 입력받아, 그 값을 토대로 레지스트리를 등록하는 용도입니다.

자세한 내용은 아래 주소로 가시면 됩니다.

http://geekswithblogs.net/akraus1/archive/2013/08/14/153728.aspx

 
** 다운로드는 상단 링크된 게시판에서 받으세요.
CPU High.zip
다운로드

 

 

# 추가 2

선호도는 아예 건드리지 않는게 낫다.

프로세스 하나만 바꿔도 관련된 프로세스나 시스템 프로세스들의 작동이 연동되서 다 바뀐다. 모두 체크된 기본값으로 사용하는게 나을듯하다.

실시간으로 하든 낮음으로 하든 별 문제가 안될 수도 있는데 최적화한다고 불필요한 백그라운드 프로세스 다 끄고 풀스크린 모드로 실행하는 게임 등에서는 큰 영향이 없다고 한다.

 

우선순위는 미리 지정해놓은 프로그램 기본값에서 위아래 딱 한단계로만 바꾸는게 좋을듯하다.

우선순위에 민감한 프로그램도 있고, 반대로 하나마나한 프로그램도 있다.

특히 백그라운드에 뭘 많이 띄워놓는 환경이나 윈도우10에서 더 그런 것 같다.