Core Parking是一項(xiàng)Windows內(nèi)核電源管理和內(nèi)核調(diào)度技術(shù),設(shè)計(jì)這一項(xiàng)技術(shù)的目的是為了增強(qiáng)多核系統(tǒng)上的能源功效。Core Parking可以不斷地跟蹤每一個(gè)硬件線程相對(duì)于其他硬件線程的工作負(fù)載,并能決定將某些硬件線程進(jìn)入睡眠模式。
Core Parking技術(shù)能夠根據(jù)工作負(fù)載動(dòng)態(tài)調(diào)節(jié)正在使用的硬件線程的數(shù)目。當(dāng)一個(gè)硬件線程的工作負(fù)載低于某一個(gè)閾值時(shí),Core Parking算法會(huì)通過(guò)暫停系統(tǒng)中的一些硬件線程的方式減少硬件線程數(shù)目。為了使得這個(gè)算法高效,在調(diào)度軟件線程的時(shí)候,內(nèi)核調(diào)度器會(huì)給未暫停的硬件線程分配較高的優(yōu)先級(jí)。內(nèi)核調(diào)度器會(huì)試圖讓暫停的硬件線程閑置,這樣就可以將它們轉(zhuǎn)到低功耗的閑置狀態(tài)了。
在包含HT技術(shù)的微處理器系統(tǒng)中,Core Parking會(huì)智能地將任務(wù)在線程之間進(jìn)行調(diào)度,而這些線程運(yùn)行在同一個(gè)物理內(nèi)核中的多個(gè)硬件線程上。這種調(diào)度決策可以降低電源消耗。
Windows Server 2008 R2支持完整的Core Parking技術(shù)。不過(guò),Windows 7也采用了Core Parking算法和基礎(chǔ)結(jié)構(gòu),用于在包含HT技術(shù)的微處理器上均衡硬件線程的處理器性能。圖1-7展示的 Windows Resource Monitor顯示了8個(gè)硬件線程的活動(dòng),其中有4個(gè)硬件線程暫停了。
無(wú)論有多少個(gè)暫停的硬件線程,.NET Framework 4的函數(shù)所返回的硬件線程數(shù)仍然是總硬件線程數(shù),而不僅僅是未暫停的硬件線程數(shù)。Core Parking技術(shù)并沒(méi)有限制進(jìn)程運(yùn)行軟件線程的硬件線程數(shù)。
在某些特定的工作負(fù)載下,如果工作負(fù)載很低,那么帶有8個(gè)硬件線程的系統(tǒng)可以將自己轉(zhuǎn)變?yōu)閹в袃蓚€(gè)硬件線程的系統(tǒng),然后再根據(jù)需要啟用保留的硬件線程。某些情況下,在調(diào)度大量試圖并行地運(yùn)行代碼的軟件線程的時(shí)候,Core Parking可能會(huì)引入額外的延遲。因此,在測(cè)量并行性能時(shí),一定要考慮可能帶來(lái)的延遲。