系統空閒行程

Windows NT作業系統中,系統空閒行程包含著一個或多個於沒有其他執行緒於CPU中被排定時執行的核心執行緒。在多核系統中,每一個CPU核心都對應了一個閒置行程。而對於啟用了超執行緒的系統,每個邏輯處理器對應一個閒置行程。

系統空閒行程
Windows XP中的工作管理員顯示系統空閒行程用量99%,指示沒有其他行程正使用CPU。
Windows XP中的工作管理員顯示系統空閒行程用量99%,指示沒有其他行程正使用CPU。
內建於基於Windows NT的作業系統

閒置行程和其執行緒的首要目的是為了清除可能會導致排程程式出現特殊情況的程式。在沒有閒置執行緒的情況下將會出現沒有執行緒可執行的情況(即Windows排定狀態中的「就緒」態)。由於閒置行程一直都處於就緒態(如果未處於執行態),所以這種情況不可能發生。因此噹噹前執行緒離開其CPU排程排程程式時,另外一個執行緒將會執行在相同的CPU上,即使它只是CPU的閒置行程。因此,歸於空閒行程的CPU時間表示系統中任何其他執行緒不需要的CPU時間量。

排程程式根據執行緒排程優先級將空閒執行緒視為特殊情況。閒置執行緒的排程就好像它們有著與普通執行緒相比更低的優先度。

因為閒置行程的功能,其CPU時間的測定(視覺化,比如通過工作管理員)看似是閒置行程壟斷了CPU的使用。然而,閒置行程並不使用電腦資源(即使是在看似過高的系統占用的情況下)。它的CPU時間"用量"測量多少的CPU時間不被其他執行緒使用。

在Windows 2000與後續版本中,系統空閒行程的執行緒同樣用於實現中央處理器省電。實際能源節約方案基於作業系統版本、硬體和韌體能力。例如,在Windows 2000的X86處理旗下,閒置執行緒將會執行停止英語HLT (x86 instruction)指令迴圈,這將導致直到下一個中斷請求英語interrupt request出現時CPU的許多內部組件將會被關閉。之後版本的Windows實現了更複雜的CPU節電方法。這些系統將會呼叫硬體抽象層的常式來降低CPU時鐘速度或實現其他節能機制。

Windows的效能監視程式(可使用perfmon程式檢視)里存在著這些詳細資訊,且提供了更詳細的CPU用量分類。CPU時間分類的受限子集可通過工作管理員檢視,它可顯示CPU的CPU使用並分類使用者和核心碼的時間使用。

另請參閱

編輯

參考文獻

編輯