CPU 集
CPU 集提供 API,以与 OS 电源管理兼容的“软”方式声明应用程序相关性。 此外,API 还使应用程序能够使用 进程默认 机制将进程中的所有后台线程重新关联到一部分处理器,以避免进程内 OS 线程产生干扰。 某些版本的 Windows 支持核心预留策略,其中系统 CPU 集的子集可用于单独使用单个应用程序和工作负载。
CPU 集 API 适用于与虚拟处理器相关性关联的 CPU 集 ID。 在大多数系统上,大多数情况下,每个 CPU 集 ID 将直接映射到单个 主 逻辑处理器。 与给定 CPU 集关联的线程通常在所选 CPU 集 ID 列表中某个处理器上执行。
可以通过检查SYSTEM_CPU_SET_INFORMATION中 分配的 标志来确定保留的 CPU 集。 系统控制对保留 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 结构