Windows 프로세스 스케줄러가 작업을 임의의 CPU에 할당하는 이유는 무엇입니까?

Windows 프로세스 스케줄러가 작업을 임의의 CPU에 할당하는 이유는 무엇입니까?

저는 듀얼 코어 C2D 프로세서인 Windows 7을 사용하고 있습니다(이 동작은 제가 본 모든 MS OS에서 동일하지만). 단일 스레드 CPU 집약적 작업을 실행하면 1개의 코어에 고정되지 않고 오히려 첫 번째 코어의 약 50%, 두 번째 코어의 약 50%를 무작위로 차지합니다.

왜 그런가요? L1 캐시의 효율성이 저하되는 것은 아닌가요?

나는 프로세스 선호도를 설정할 수 있다는 것을 알고 있습니다. 그러한 동작의 이유가 궁금합니다.

답변1

무작위가 아닙니다. 그들은 그것을 떨어뜨릴 가장 좋은 장소를 선택하고 있으며, 현재 무거운 프로세스를 처리하고 있는 프로세서에 떨어뜨릴 필요가 없습니다...

다른 프로세스가 이미 모든 유용한 데이터의 L1 캐시를 플러시했을 가능성이 높기 때문에 L1 캐시 효율성에는 실제로 영향을 미치지 않습니다. 이것이 바로 공유 L2 및 L3 캐시에 대한 이야기가 많은 이유입니다.

관련 정보