프로세스 우선 순위를 높음 : 위험?


8

나는 무언가를 실시간으로 설정하는 것이 큰 아니오라는 것을 읽었으므로 그렇게하지 않을 것입니다. 그러나 나는 실행중인 나머지 응용 프로그램에 중요하기 때문에 항상 시스템에서 가장 우선 순위가 높은 응용 프로그램을 가지고 있습니다. 우선 순위를 높게 설정하면 실시간보다 한 단계 낮은 위험이 있습니까?

또한 바로 가기 대상을 변경하여 어떻게 할 수 있습니까? 명령은 무엇입니까?


"정상"(Windows 7) 설정이 더 안전합니다. 여기에 약간의 토론이 있습니다 ... stackoverflow.com/questions/1663993/…
Moab

1
매우 위험합니다. 가장 큰 문제는 우선 순위 반전 인데, 우선 순위가 높은 프로세스는 우선 순위 가 낮은 프로세스에 의해 무기한으로 차단 될 수 있기 때문에 우선 순위가 높은 프로세스가 실제로 효과적으로 우선 순위를 낮추게됩니다 .
David Schwartz

언급 한 바와 같이 "실시간"은 프로세스가 제대로 작동하고 필요할 때만 실행되고 필요하지 않을 때만 실행되는 한 반드시 나쁘지는 않습니다. 그렇지 않으면 다른 작업이 완전히 실행되지 않을 수 있습니다.
Mokubai

2
@David Schwartz, Cutler는 우선 순위 반전으로 인한 교착 상태를 피하기 위해 Windows 스케줄러를 설계했습니다. 에서 support.microsoft.com/kb/96418 , "무작위 (이 경우 낮은 우선 순위 잠금 홀더에) 실행할 준비가 스레드의 우선 순위를 증폭하여 Windows NT 스케줄러이 문제를 해결합니다. 낮은 우선 순위의 스레드가 충분히 실행 우선 순위가 높은 스레드가 잠금을 해제하면 우선 순위가 낮은 스레드가 처음으로 잠금을 해제 할 수있는 충분한 CPU 시간을 얻지 못하면 다시 기회가 생깁니다. "다음 일정에."
Nicole Hamilton

@NicoleHamilton 그렇기 때문에로드가 많기 때문에 첫 번째 클릭에서 열리지 않고 몇 번 클릭하면 프로그램이 한 번에 몇 개의 인스턴스를 여는 이유는 무엇입니까?
Simon Verbeke

답변:


6

실시간이 반드시 "아니오"인 것은 아닙니다. CPU 사이클에서 다른 프로세스가 고갈 될 수 있습니다. 일부 응용 프로그램은이를 처리 할 수 ​​없습니다. 그것은 당신이 실험해야 할 것입니다.

높음은 문제가되지 않습니다. 그러나 모든 응용 프로그램이 제대로 작동하는지 확인하려면 시스템을 모니터링해야합니다.

명령 행을 통해 프로세스를 변경하는 방법은 다음과 같습니다.

http://support.microsoft.com/kb/191771


1
Windows의 경우, 그것은 수행 (작업 관리자 자체를 포함) 아주 쉽게 다른 프로세스를 굶어.
user1686

3
그것은 모두 시스템에 달려 있습니다. CPU가 프로세스를 집중적으로 사용하는 방법에 따라 실시간 선호도가 좋습니다. 문제없이 실시간으로 프로세스를 실행하고 있습니다. 또한 우선 순위를 실시간으로 설정하면서 하나의 프로세서에 선호도를 설정하는 데 도움이 될 수 있습니다.
Keltari

프로세스가 실시간으로 설정된 경우 실행중인 코어의 다른 모든 프로세스보다 절대 우선 순위가 부여됩니까? 코어가 작동하는 동안 코어 중 하나를 드워프 포트리스에 바치는 방법을 찾으려고 노력했습니다.
SaintWacko

3

나는 그것이 달려 있다고 말할 것입니다. 컴퓨터에 코어 / CPU가 하나만 있고 CPU를 많이 사용하는 작업 인 경우 실시간으로 설정하지 않습니다. 높을 수도 있지만 실험이 필요합니다.

코어가 여러 개이고 프로세스가 단일 스레드 인 경우 : 원하는대로 설정하십시오. 한 코어가 항상 100 %로드 상태 일 때도 다른 코어는 여전히 무료입니다.

코어가 여러 개이고 프로세스가 다중 스레드 인 경우 모든 스레드에 100 %로드가 있는지 여부에 따라 다릅니다. 일부 프로그램에는 다른 스레드로 작업을 디스패치하지만 자체적으로 많은 처리를 수행하지 않는 '관리자'스레드가 있습니다. 이는 하나의 코어를 거의 공짜로 남겨두고 높은 우선 순위 또는 실시간 우선 순위를 허용합니다.

다른 프로그램은 모든 핵심을 수용하려고 시도합니다. 이 경우 높을 수 있지만 실험이 필요합니다.

다른 사람도 특정 수의 코어 만 사용하며 사용 가능한 모든 코어를 사용하지 않을 수도 있습니다. 이 경우 높거나 실시간 우선 순위가 양호해야합니다.

단일 코어를 사용하지 않는 한 계속 실험 해보십시오. 대부분의 경우 시간을 높게 또는 실시간으로 설정하는 것이 아프지 않습니다. 작업 관리자에서 프로세스의 선호도 (사용할 수있는 코어 수)를 설정할 수도 있습니다. 이렇게하면 CPU의로드 균형을 더 잘 맞출 수 있습니다. 또한 온도 및 전력 소비 등을 유지하는 데 도움이 될 수 있습니다.


+1 단일 스레드 앱은 컴퓨팅 바운드 방법에 관계없이 멀티 코어 시스템에서 문제가되지 않습니다.
Nicole Hamilton

경고하지만, [주로] 단일 스레드 우선 순위가 높은 프로세스는 단일 코어에만 영향을 주더라도 글로벌 시스템 동기화 잠금을 비정상적인 시간 동안 유지할 수 있음을 잊지 마십시오.
dyasta

1

이것이 당신을 위해 작동할지 여부는 전적으로 응용 프로그램의 기능에 달려 있습니다. i / o를 기다릴 필요가없는 길고 긴 계산을 통해 연삭 작업을 수행하는 경우 우선 순위가 높은 작업을 실행하면 시스템이 무릎을 꿇을 수 있습니다. 그러나 문제가 대기 시간이고 i / o 완료 또는 이와 유사한 이벤트에 응답하여 응용 프로그램이 실제로 빠르게 일어나야하는 경우 약간의 빠른 처리를 한 다음 다시 잠자기 상태로 전환하면 문제가 없습니다.


0

일반적으로 기본 프로세스 우선 순위를 정상 이외의 것으로 설정하는 모든 응용 프로그램은 성능 측면에서 시스템의 다른 모든 것에 부정적인 영향을 미칩니다. 따라서 모든 응용 프로그램이 이처럼 중요한 중요성을 가지면 결국 아무 효과가 없습니다.

더 높은 우선 순위를 사용하는 올바른 방법은 응용 프로그램이 아닌 개별 스레드 작업입니다. 그리고 이러한 작업은 필요한만큼만 실행 한 다음 수행 할 작업이 없으면 중지하거나 일시 중단해야합니다. 응용 프로그램을 작성할 때 우선 순위 기본 레벨을 변경해야한다고 생각되면 필요한 간격을 가능한 짧게 만드는 방법에 대해 매우 열심히 생각하십시오.

우선 하이킹과 같은 곳으로 가기 전에 동시 또는 병렬 처리에 대한 책이나 코스에 투자하는 것이 좋습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.