為什麼Windows行程排程器會將任務分配給隨機的CPU?

為什麼Windows行程排程器會將任務分配給隨機的CPU?

我使用的是雙核心 C2D 處理器、Windows 7(儘管這種行為在我見過的所有 MS 作業系統中都是相同的)。當我執行任何單執行緒 CPU 密集型任務時,它不會堅持使用 1 個核心,而是隨機佔用第一個核心的約 50%,第二個核心的約 50%。

他們為什麼這麼做?這不會導致L1快取的效率降低嗎?

我知道我可以設定進程親和力,我只是想知道這種行為的原因。

答案1

它不是隨機的。他們正在選擇放置它的最佳位置,將其放置在當前正在處理重量級進程的處理器上是沒有意義的...

它並不會真正影響 L1 快取效率,因為其他進程很可能已經刷新了 L1 快取中的所有有用資料。這就是為什麼有這麼多關於共享 L2 和 L3 快取的討論...

相關內容