推土機性能增強10%!CPU線程調配探究
首先要說下進程與線程的區別,在操作系統中,每個程序可以看作是指令的集合,執行這些程序就會產生進程,一個程序可以有多個并行進程,每個進程包含多個線程(操作系統中的最小調度單位是線程),每條線程可以并行執行多個任務。

Windows操作系統的內核線程調度機制并未針對模塊化設計優化
以實際應用來說,當你運行某個程序時,在Windows操作系統中就會出現對應的一個或多個進程,每個進程又會包含多個線程分配到處理器中執行。如果一個程序針對多線程優化,那么該程序對應的進程中的不同線程就會能得到充分執行,程序的執行吞吐率也會高很多。這樣的程序在多核或者支持超線程技術的處理器上運行時效率就會很高,不過現在的很多程序并沒能跟上處理器多核化的腳步,比如Photoshop在測試中就只能讓處理器的一顆核心滿載,而其他核心都處在空閑狀態,我們能做的是什么呢?或者說Windows8能做的是什么呢?
在Windows系統中,調度的最小單位就是線程,系統依靠自己的內核線程管理機制可以將一個或多個進程或者一個進程中的一個或多個線程綁定到一個或多個處理器核心上(即CPU親緣性)。讀到這兒你要激動下了,因為推土機處理器的每個模塊內的運算資源是由兩顆核心共享的,如果一個程序并不能利用這么多核心(目前能完整利用到八顆核心的日常程序是少之又少),而只能利用到四顆核心,操作系統讓該程序進程中的線程分別只運行在每個模塊中的一個核心上,而讓另外一個核心閑置,那么這時的運算效率會怎樣呢?
現在的問題是在Windows 7中,推土機的八顆核心均是一模一樣的,它本身并沒有上段的那種調度機制,而Windows 8就帶來了這種可能性,不過現在我們可以采用方法在Windows7中實現這種機制,于是小編帶來了下面的測試。
關注我們


