Windows Internals 의 설명을 살펴보면 대략적인 내용은 이렇습니다.
- 스레드 하나가 실행할 준비가 되면 이 스레드를 유휴 프로세서에 배정을 시도 합니다.
- 윈도우는 이 스레드에 가장 적합한 프로세서를 찾아서 배정 합니다. (직전 프로세서, 처리됐던 프로세서, 친화성 을 고려)
- 각각의 CPU 마다 스레드 레디큐가 존재하며, 각 CPU 는 처리중인 스레드가 끝나면 레디큐의 다음 스레드를 처리 합니다.
결론적으로 보면 CPU 들이 각자 자신이 처리할 스레드를 스케쥴링 하는 방식이 아니고, 어떤 스레드가 스케쥴링 되어야 할 시점이 되면 적합한 CPU 를 찾아 배정하는 스케쥴링으로 보시면 되겠습니다.