CPU 集合
CPU 集合提供 API,以與 OS 電源管理相容的「軟式」方式宣告應用程式親和性。 此外,API 可讓應用程式使用 進程預設 機制,將進程中的所有背景線程重新附加至處理器子集,以避免進程內的 OS 線程受到干擾。 某些版本的 Windows 支援核心保留原則,其中系統 CPU 集合的子集可以專用於個別應用程式和工作負載的獨佔用途。
CPU 集合 API 適用於與虛擬處理器親和性相關聯的 CPU 集合標識碼。 在大部分的系統上,而且在大部分情況下,每個 CPU 集合標識碼都會直接對應至單一 主 邏輯處理器。 與指定 CPU 集合親和化的線程通常會在其所選 CPU 集標識碼的其中一個處理器上執行。
保留的 CPU 集合可以藉由檢查SYSTEM_CPU_SET_INFORMATION中 配置的 旗標來決定。 系統控制保留 CPU 集合的存取權,而且可以使用SYSTEM_CPU_SET_INFORMATION結構的 AllocatedToTargetProcess 旗標來查詢指派。 如果進程嘗試使用獨佔配置給其他進程的 CPU 集合指派,則會忽略其要求,並將指派給不允許 CPU 集的線程排程到別處。 CPU 集合可以在兩個層級指派。 進程預設 CPU 集合會指派給進程中沒有 [線程選取] 層級指派的所有線程。 如果線程或進程已設定限制性親和性遮罩,則親和性遮罩會高於任何衝突的 CPU 集合指派。 在多群組系統上,如果 CPU 指派位於與線程同質遮罩中的群組不相符的群組中,則會忽略 CPU 指派。 如果線程指派給多個有效的CPU集合,它會根據線程的優先順序和這些處理器上競爭線程的優先順序,在其中一個對應的處理器上執行。
CPU 集合函式/列舉/結構
- GetProcessDefaultCpuSets 函式
- GetProcessDefaultCpuSetMasks 函式
- GetSystemCpuSetInformation 函式
- GetThreadSelectedCpuSets 函式
- GetThreadSelectedCpuSetMasks 函式
- SetProcessDefaultCpuSets 函式
- SetProcessDefaultCpuSetMasks 函式
- SetThreadSelectedCpuSets 函式
- SetThreadSelectedCpuSetMasks 函式
- CPU_SET_INFORMATION_TYPE 列舉
- SYSTEM_CPU_SET_INFORMATION 結構