超線程怎么開 超線程和線程

這個問題,取決于你所問的Windows是哪個版本?每個版本的Windows都不太一樣 。
請容我慢慢道來 。對于Windows 95,Windows 98和Windows ME,答案很簡單:壓根不會用到超線程 。因為這些操作系統不是多處理器操作系統 。
對于Windows NT和Windows 2000來說,答案是:連操作系統自己都不知道有超線程這回事兒 。為什么?這兩個操作系統是在超線程發明之前編寫的 。如果你啟用了處理器的超線程,則一塊物理CPU在操作系統看來是兩塊獨立的邏輯CPU 。(也因此你需要為這兩塊CPU核心付授權費)
因為調度器(Scheduler)不會在多個虛擬CPU之間實現連接,所以 , 和一開始就不啟用超線程相比 , 啟用超線程之后的運行性能可能會更糟 。
考慮一臺搭載有雙超線程處理器的機器 。這臺機器上有兩塊物理處理器A和B,每塊物理CPU會擴展出兩塊虛擬CPU , 讓我們將它們命名為A1, A2, B1和B2吧 。
假設你有兩項CPU密集的計算任務 。對于Windows NT和Windows 2000調度程序而言,所有四個處理器都是等效的,操作系統會選擇其中兩塊CPU進行計算 。如果你不那么走運,它會選擇A1和A2,從而導致一塊物理CPU同時運行兩項計算密集型的任務 (每個都可能以半速和四分之三速之間的速度運行),而另外一塊物理處理器B則會空閑等待調度 。操作系統壓根就不知道可以將這兩項任務分別調度到兩塊不同的物理處理器上,從而提升性能 。
Windows XP和Windows Server 2003操作系統進行了改良,它們都可以正確面對這種超線程特性 。
當出現上述情況時,調度器會知道當前處理器的虛擬化配置,并智能地將兩項計算任務分發到不同的物理處理器上 。
請注意,即使使用支持超線程的處理器,也可能發生緩存未命中的問題 。
例如,如果你有四個任務 , 其中兩個嚴重依賴L2緩存,而其中兩個不依賴,你最好將每個L2密集型任務放在單獨的處理器上 , 因為L2緩存是由兩個虛擬處理器共享的 。將它們放在同一個處理器上會導致大量L2緩存未命中,因為這兩個任務會爭奪L2緩存插槽 。
當你使用數據中心服務器或者企業服務器版本的Windows時,事情又變得棘手了 。
這個時候,就不是三言兩語能講明白的了 。我建議你瞄一瞄這篇白皮書,以了解其中的玄機 。
總結虛擬化其實一直都在進行,比如,現在比較火熱的”元宇宙” 。
這讓我想起了這東西:缸中之腦 。
最后Raymond Chen的《The Old New Thing》是我非常喜歡的博客之一 , 里面有很多關于Windows的小知識,對于廣大Windows平臺開發者來說 , 確實十分有幫助 。
【超線程怎么開 超線程和線程】本文來自:《How does Windows exploit hyperthreading?》
最近我寫了個東西正如你們所知道的,拓撲梅爾智慧辦公平臺(Topomel Box)是一款綠色軟件 , 主要面向經常使用電腦的朋友 。它提供了各種提升辦公效率的小功能,同時操作上盡可能地簡單方便 。
我想:你值得擁有 。

超線程怎么開 超線程和線程

文章插圖