내가 알기로는 Windows는 프로세스 우선 순위를 자동으로 조정하지 않습니다 .
프로세스 우선 순위를 변경하면 프로세스의 모든 스레드와 프로세스 내에서 생성 된 모든 스레드의 "기본 우선 순위"가 설정됩니다. ( 이 관계에 대한 설명은 여기 내 답변을 참조하십시오 .)
Windows는 최근 활동에 따라 스레드 의 우선 순위를 조정합니다 . 예를 들어, I / O 완료 후 스레드의 우선 순위는 장치의 기능 장치 드라이버에 의해 결정된 양만큼 기본보다 높아집니다. 모든 타임 슬라이스가 종료 될 때 스레드가 우선 순위가 높아지면 기본 우선 순위로 떨어질 때까지 우선 순위가 1 씩 감소합니다. 밑면 아래에서 부식되지 않습니다.
이 내용은 Solomon, Russinovich, Ionescu 등의 Windows Internals의 스레드 스케줄링 장에 설명되어 있습니다.
그러나 1) 스레드 우선 순위 증가 및 감소의 결과가 작업 관리자에 표시되지 않기 때문에 (작업 관리자가 스레드 우선 순위가 아닌 프로세스 우선 순위 클래스를보고하므로) 이는보고 된 시나리오와 일치하지 않습니다. 2 :이 메커니즘 은 스레드의 우선 순위를 기본 우선 순위 아래로 쇠퇴 하지 않습니다 . 프로세스 우선 순위를 변경할 때 기본이 설정됩니다.
이것은 Visual Studio (deveng.exe) 자체에서 수행 한 작업 일 수 있습니다. 다른 프로세스에서도 이런 일이 발생합니까?
이것은 Windows Performance Toolkit으로 조사 할 수 있습니다.