원문 캡처 · devblogs.microsoft.com
원문 캡처 · devblogs.microsoft.com

CPU 자원이 부족해지면 작업 표시줄과 작업 관리자도 느려질 수 있다. 두 도구는 시스템을 괴롭히는 프로그램을 중단할 때 쓰이지만, 높은 우선순위로 실행하면 공유 자원을 기다리느라 오히려 멈출 수 있다.

높은 우선순위를 부여하면 대기열 앞에 설 수는 있지만, 이미 자원을 사용하는 작업이 끝나야 차례가 온다. 자원을 가진 스레드에 대기자의 우선순위를 넘겨 우선순위 역전을 막더라도, 그 스레드가 네트워크 파일에 접근하는 등 오래 걸리는 작업을 하고 있으면 기다림은 계속된다.

사용자 인터페이스(UI) 코드에서는 문제가 더 두드러진다. 결국 UI 시스템을 호출해야 하고, 이때 시스템의 다른 UI 스레드와 자원을 놓고 경쟁하게 된다.

통제 불능 상태가 된 시스템을 그 시스템 안에서 복구하기는 어렵다. 복구에 쓸 도구 자체가 이미 영향을 받았을 수 있고, 도구가 문제를 일으킨 작업과 중요한 자원을 공유한다면 더더욱 그렇다. 윈도우는 현재 포커스를 받은 프로그램에 이미 우선권을 준다. 따라서 작업 표시줄이나 작업 관리자에 포커스를 옮기는 것이 가능한 대응책이다. 다만 우선권을 받은 스레드도 우선권이 없는 스레드가 관리하는 자원에서 막히면 그 효과에는 한계가 있다. 윈도우의 프로세스 우선 처리 방식