CPU 集
CPU 集提供 API,用于以与 OS 电源管理兼容的“软”方式声明应用程序相关性。 此外,API 使应用程序能够使用进程 默认 机制将进程中的所有后台线程重新映射到处理器子集,以避免来自进程内 OS 线程的干扰。 某些版本的 Windows 支持核心预留策略,其中系统的一部分 CPU 集可以专用于单独使用单个应用程序和工作负载。
CPU 集 API 适用于 CPU 集 ID,这些 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 集函数/枚举/结构
- GetProcessDefaultCpuSets 函数
- GetProcessDefaultCpuSetMasks 函数
- GetSystemCpuSetInformation 函数
- GetThreadSelectedCpuSets 函数
- GetThreadSelectedCpuSetMasks 函数
- SetProcessDefaultCpuSets 函数
- SetProcessDefaultCpuSetMasks 函数
- SetThreadSelectedCpuSets 函数
- SetThreadSelectedCpuSetMasks 函数
- CPU_SET_INFORMATION_TYPE 枚举
- SYSTEM_CPU_SET_INFORMATION 结构