CPU 集合
CPU 集合提供 API,以與 OS 電源管理相容的「軟式」方式宣告應用程式親和性。 此外,API 也提供應用程式能夠使用 進程預設 機制將進程中的所有背景執行緒重新關聯至處理器子集,以避免進程內的 OS 執行緒干擾。 某些版本的 Windows 支援核心保留原則,其中系統 CPU 集合的子集可以專門用於個別應用程式和工作負載的獨佔用途。
CPU 集合 API 適用于與虛擬處理器親和性相關聯的 CPU 集識別碼。 在大部分系統上,而且在大部分情況下,每個 CPU 集合識別碼都會直接對應至單一 主 邏輯處理器。 與指定 CPU 集合同構的執行緒通常會在其所選 CPU 集識別碼清單中的其中一個處理器上執行。
您可以藉由檢查SYSTEM_CPU_SET_INFORMATION中的 [配置 ] 旗標來判斷保留的 CPU 集合。 系統會使用 SYSTEM_CPU_SET_INFORMATION 結構的 AllocatedToTargetProcess 旗標來查詢保留 CPU 集的存取權,以及查詢指派。 如果進程嘗試使用獨佔配置給其他進程的 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 結構