2009-11-02 1 views
55

과거에 읽은 것부터, 프로그래밍 방식으로 Windows 응용 프로그램의 우선 순위를 변경하지 않는 것이 좋습니다. 그렇다면 결코 변경하지 말아야합니다.'실시간'프로세스 우선 순위 설정은 무엇입니까?

'실시간'프로세스 우선 순위 설정은 '높음'및 '정상 이상'과 비교하여 어떤 차이가 있습니까?

답변

65

. 이와 같이 CPU가 실시간 우선 순위 스레드를 바운드하면 시스템이 완전히 망가질 수 있습니다.

실시간 우선 순위 스레드를 생성하려면 관리 사용자 만 수행 할 수있는 권한 (SeIncreaseBasePriorityPrivilege)이 필요합니다.

Vista 이상에서는 실시간 우선 순위로 실행해야하는 응용 프로그램의 경우 하나의 옵션으로 Multimedia Class Scheduler Service (MMCSS)을 사용하고 스레드 우선 순위를 관리하도록 할 수 있습니다. MMCSS는 응용 프로그램이 너무 많은 CPU 시간을 사용하지 못하도록하므로 시스템에 탱크를 두는 것에 대해 걱정할 필요가 없습니다.

+4

비디오 게임과 같은 단일 무작위 프로세스를 실시간 우선 순위에 두는 것은 시스템에 위험 할 수 있습니까? 높은 우선 순위가 권장/해당 응용 프로그램에 대한 성능 저하가 현저하게 나타 납니까? – mrfred

+9

@mrfred 큰 프로그램이라면 전체 시스템의 속도를 늦추는 것은 위험하다는 말은하지 않습니다. Minecraft의 우선 순위를 실시간으로 설정하십시오. 믿어, 재미 있네. 마우스가 느려지고 키가 응답하는데 5 초가 걸리고 explorer.exe가 응답하지 않게됩니다! –

+1

@mrfred 개인적으로 skyrim은 한 번에 몇 달 동안 높은 우선 순위와 실시간 우선 순위로 돌렸고, 어떤 이유에서든 가끔씩 오디오 인공물만으로 게임을 훨씬 매끄럽게 만들었습니다. 나는이 일을하면서 어떤 문제도 겪어 본 적이 없다. 나는 무언가가 끔찍하게 잘못 될 경우 시스템이 과열 될 것이라고 생각하지만, 물론 무엇이 잘못 될지 모른다. 아마도 여러 개의 코어를 가지고 있으면 IO 디바이스에 대한 리소스가 부족할 것입니다. – Totem

22

단순히 "실시간"우선 순위 클래스가 "우선 순위 높음"클래스보다 높습니다. 나는 그것보다 훨씬 더 많은 것이 있다고 생각하지 않는다. 오 그래 - 실시간 클래스에 스레드를 넣으려면 SeIncreaseBasePriorityPrivilege이 있어야합니다.

Windows는 여러 가지 이유로 스레드의 우선 순위를 높일 수 있지만 다른 우선 순위 클래스로 스레드의 우선 순위를 높이지는 않습니다. 또한 실시간 우선 순위 클래스에서 스레드의 우선 순위를 높이 지 않습니다. 따라서 우선 순위가 높은 스레드는 실시간 우선 순위 클래스에 자동으로 임시 부스트를 얻지 못합니다.

이 작동하는 방법 Windows가 우선 순위를 처리하는 방법에 대한 루시 노의 "내부 윈도우"장 학습을위한 훌륭한 자원이다 :

주 일반 Windows 시스템에서 우선 순위 우선 순위 - 그들이 dedicatd 컴퓨터에서 실행되는 특수 프로세스에 반드시 필요한 것은 아닙니다. 멀티미디어 드라이버 및/또는 프로세스가 실시간 우선 순위가있는 스레드를 필요로한다고 생각합니다. 그러나 이러한 스레드는 CPU를 많이 필요로하지 않아야합니다. 일반적인 시스템 이벤트가 처리되도록 대부분의 시간을 차단해야합니다.

+6

그렇습니다. 실시간 스레드는 수행 시간이 많이 걸리지 만 좋은 응답 시간을 경험해야하는 스레드가있는 경우에 적합합니다. – Artelius

+0

나는 오래된 게시물이라는 것을 알고 있지만 그 책 장이 정말 멋지다는 것을 알았다. https://www.google.ca/search?q=C04X1116607.pdf&ie=utf-8&oe=utf-8&gws_rd=cr&ei=cSTqVJzQNvHnsATun4CIDA#q=X1116607.pdf – MotherDawg

12

가장 높은 우선 순위 설정이며 일반적으로 해당 특정 프로그램을 실행하는 전용 상자에서만 사용됩니다. 실제로 키보드와 마우스 스레드가 기동하지 않을 정도로 응답이 부족할만큼 충분히 높습니다. 그래서 basicly

, 당신이 요청해야하는 경우, 그것을 : 사용하지 않는

실시간 우선 순위의 스레드가 시스템의 다른 스레드보다 높은 우선 순위로 타이머 인터럽트에 의해 선점하지 않고 실행 않을 수
+0

동의. 그것이 무엇을 의미 하는지를 아는 것이 중요합니다 (무엇보다 우선 순위가 가장 중요합니다). 그러나 만약 당신이 그것을 사용해야한다면, 당신은 절대로해서는 안됩니다. –

+3

사용 방법을 묻지 않으면 어떻게 사용하는지 배울 것입니까?나는 당신이 그것을 사용할 수 있고 당신이 배울 것이지만 당신의 낙담하는 학습을 느낄 것이라고 생각합니다. – fifamaniac04

2

실시간으로 가장 높은 우선 순위는 입니다. 따라서 그것은 한 단계 더 컸다는 점에서 '높음'과 다르며, 두 단계가 더 뛰어나다는 점에서 '정상 이상'과 다릅니다.

마찬가지로 실시간도 스레드 우선 순위 수준입니다.

프로세스 우선 순위 클래스은 프로세스의 모든 유효 스레드 우선 순위를 높이거나 낮추므로 '기본 우선 순위'로 간주됩니다.

따라서, 프로세스가 있습니다

  1. 기본 프로세스 우선 순위 클래스을.
  2. 개별 스레드 우선 순위, 기본 우선 순위 클래스의 오프셋.

실시간은 절대적으로 다른 실행중인 프로세스를 선점해야하는 응용 프로그램을 위해 예약되어 있기 때문에 위험한 사용을 막을 수있는 특별한 보안 권한이 있습니다. 이는 보안 정책에 의해 정의됩니다.

NT6 + (Vista +)에서는 이 아니고 실시간 운영을 실현하는 적절한 방법 인 Vista Multimedia Class Scheduler를 사용합니다. 실시간 OS. OS가 실시간 작업을 위해 설계되지 않았기 때문에 대부분 완벽하게 작동하지는 않지만 작동합니다.

Microsoft는이 우선 순위를 매우 위험하다고 생각합니다. 아주 특별한 상황을 제외하고는 어떤 용도로도 사용해서는 안되며, 심지어는 그 사용을 일시적인 필요로 제한하려고 시도하지 마십시오.

1

Windows에서 프로그램이 보통 우선 순위보다 높은 것을 사용하면 프로그램의 우선 순위가 제한되는 것처럼 보입니다.

우선 순위를 IDLE에서 REALTIME으로 설정해도 CPU 사용량은 변경되지 않습니다.

내 멀티 프로세서 AMD CPU에서 CPU 중 하나를 마지막 하나처럼 놓으면 CPU 사용량이 최대로되고 마지막 CPU가 유휴 상태임을 알게되었습니다. 쿼드 AMD에서 프로세서 속도가 75 %까지 증가합니다.

작업 관리자 -> 프로세스 선택 -> 프로세스 -> 선택 -> 선호도 설정을 클릭하십시오. 마지막 프로세서를 제외하고 모두 클릭하십시오. 비디오 처리가 증가하면 CPU 사용량이 나머지 프로세서의 최대 값 및 프레임 수로 증가합니다.

+1

프로세스 우선 순위 클래스를 변경해도 CPU에 대한 경쟁이없는 한 CPU 사용률에는 영향을 미치지 않는 것이 옳습니다. 하지만 Windows가 CPU 사용률에 따라 프로세스 우선 순위를 최대화한다고 생각하는 것은 잘못입니다. 대신, 보안 특권은 우연한 사용을 방지하기 위해 '실시간'설정을 방지합니다. –

+0

(읽기 년 나중에) - 문제는 스레드가 나눌 수 없다는 것입니다. 따라서 8 개의 코어가 있지만 2 개의 CPU 경계 (100 % 활성) 스레드 만있을 수 있습니다. 따라서 "왜 다른 6 개의 코어가 사용되지 않습니까?"라고 말합니다. 또는 귀하의 경우, "왜 내 마지막 코어가 사용되지 않았습니까?". 나머지 코어는 아무 것도하지 않는 것처럼 보입니다. 그리고 그것이 당신이 원하는 방식입니다. 스레드가 코어에서 코어로 바뀌면 성능이 저하됩니다. 앱 개발자는 멀티 스레드가 필요하며 모든 것이 멀티 스레드가 될 수는 없습니다. –

0

기본적으로 다른 모든 것은 더 높거나 더 큽니다. 키보드는 실시간 프로세스보다 우선 순위가 낮습니다. 즉, 프로세스가 계정에 더 빨리 적용되고 키보드가 처리되지 않으면 키보드가 느려집니다.

0

실시간 전에 다른 모든 답변과 마찬가지로 프로그램에 최우선 순위 클래스가 제공됩니다. 해당 프로그램이 처리 될 때까지 아무 것도 처리되지 않습니다.
내 펜티엄 4 머신에서는 게임 성능이 크게 향상되고 시스템이 완전히 안정적으로 보이기 때문에 minecraft를 실시간으로 많이 설정했습니다. 멀티 코어가 특정 코어 또는 코어에 대한 프로그램의 선호도를 설정했다면 (단지 모든 것이 아닌, 다른 모든 것들이 실시간으로 실행될 수 있도록하기 위해) 설정 프로그램이 끊어짐) 실시간 우선 순위를 설정합니다.