微软官方文档:https://docs.microsoft.com/en-us/windows/win32/procthread/processor-groups

译文如下:

64位版本的Windows 7和Windows Server 2008 R2及更高版本的Windows在一台计算机上支持64个以上的逻辑处理器。此功能在32位版本的Windows上不可用。

具有多个物理处理器的系统或具有多个内核的物理处理器的系统为操作系统提供了多个逻辑处理器。A逻辑处理器从操作系统、应用程序或驱动程序的角度来看,是一个逻辑计算引擎。A核心是一个处理器单元,可以由一个或多个逻辑处理器组成。A物理处理器可以由一个或多个内核组成。物理处理器与处理器包、插槽或中央处理器相同。

对超过64个逻辑处理器的系统的支持基于处理器组,它是一个最多64个逻辑处理器的静态集合,被视为单个调度实体。处理器组从0开始编号。逻辑处理器少于64个的系统始终只有一个组,即组0。

Windows Server 2008、Windows Vista、Windows Server 2003和Windows XP:不支持处理器组。

当系统启动时,操作系统创建处理器组并将逻辑处理器分配给这些组。如果系统能够热添加处理器,操作系统会在系统运行时为可能到达的处理器留出分组空间。操作系统将系统中的组数减至最少。例如,一个有128个逻辑处理器的系统将有两个处理器组,每组有64个处理器,而不是四个组,每组有32个逻辑处理器。

为了获得更好的性能,操作系统在将逻辑处理器分配给组时会考虑物理位置。如果可能,内核中的所有逻辑处理器和物理处理器中的所有内核都被分配到同一组。物理上彼此接近的物理处理器被分配到同一组。除非NUMA节点的容量超过最大组大小,否则该节点将被分配给单个组。有关更多信息,请参见NUMA支持。

在64个或更少处理器的系统上,现有应用程序无需修改即可正常运行。不调用任何使用处理器关联掩码或处理器号的函数的应用程序将在所有系统上正常运行,而不管处理器的数量。要在超过64个逻辑处理器的系统上正确运行,可能需要修改以下类型的应用程序:

  • 管理、维护或显示整个系统的每个处理器信息的应用程序必须进行修改,以支持64个以上的逻辑处理器。这种应用程序的一个例子是窗口任务管理器,它显示系统中每个处理器的工作负载。
  • 对于性能至关重要并且可以有效扩展到64个逻辑处理器以上的应用程序,必须进行修改才能在此类系统上运行。例如,数据库应用程序可能受益于修改。
  • 如果应用程序使用的动态链接库具有每个处理器的数据结构,并且动态链接库没有被修改为支持64个以上的逻辑处理器,则应用程序中调用动态链接库导出的函数的所有线程必须被分配给同一个组。

默认情况下,应用程序被限制在一个组中,这应该为典型应用程序提供足够的处理能力。操作系统最初在系统中的组之间以循环方式将每个进程分配给单个组。一个进程开始被分配给一个组执行。进程的第一个线程最初在该进程被分配到的组中运行。每个新创建的线程与创建它的线程被分配到同一个组。

一个应用程序需要使用多个组,这样它就可以在超过64个处理器上运行,它必须明确地决定在哪里运行它的线程,并负责将线程的处理器亲缘关系设置到所需的组。这INHERIT_PARENT_AFFINITY标志可用于指定父进程(可能不同于当前进程),从中生成新进程的关联。如果进程在单个组中运行,它可以使用GetProcessAffinityMaskSetProcessAffinityMask同时保持在同一组中;如果修改了进程关联,新的关联将应用到它的线程。

可以在创建时使用进程_线程_属性_组_相似性属性的扩展属性CreateRemoteThreadEx功能。创建线程后,可以通过调用SetThreadAffinityMask或者SetThreadGroupAffinity。如果线程被分配到与进程不同的组,则进程的相似性被更新以包括线程的相似性,并且进程成为多组进程。必须对单个线程进行进一步的相似性更改;不能使用修改多组进程的相似性SetProcessAffinityMask。这GetProcessGroupAffinity函数检索进程及其线程被分配到的组的集合。

若要为与作业对象关联的所有进程指定关联性,请使用SetInformationJobObject函数与JobObjectGroupInformation或者JobObjectGroupInformationEx信息类。

逻辑处理器由其组号和组相关处理器号来标识。这由一个处理器号结构。遗留函数使用的数字处理器号是相对于组的。

有关支持64个以上处理器的操作系统体系结构变化的讨论,请参见白皮书支持超过64个处理器的系统。

有关支持处理器组的新功能和结构的列表,请参见流程和线程中的新内容。

相关主题

多处理器

NUMA支持


若对你有帮助,欢迎点赞、收藏、评论,你的支持就是我的最大动力!!!

同时,阿超为大家准备了丰富的学习资料,欢迎关注公众号“超哥学编程”,即可领取。

win下处理器组概念相关推荐

  1. win下搭建小程序服务器,win下搭建小程序服务器

    win下搭建小程序服务器 内容精选 换一换 云硬盘挂载至云服务器后,需要登录云服务器初始化云硬盘,即格式化云硬盘,之后云硬盘才可以正常使用.云耀云服务器磁盘初始化的操作方法与ECS相同,本节操作介绍使 ...

  2. apache2.4.9 开启path_info访问_浅淡flask在win下用Apache24及mod_wsgi部署的那些坑

    浅淡flask在win下用Apache24及mod_wsgi部署的那些坑 安装部署就不指描述了,毕竟网上多得很,就说说一些坑吧. 1.中文路径问题,正常情况,Apache里配置文件用中文路径是会出错的 ...

  3. win下的输入流结束符

    在<C++ Primer>里看到说,win下的输入流结束符是Ctrl+Z,于是写了段代码来实验,发现要输入两次CTRL+Z才会退出: #include<iostream> us ...

  4. 2018-03-03-解决win下凭据删除不干净而无法登录共项目录的问题

    layout: post title: 2018-03-03-解决win下凭据删除不干净而无法登录共项目录的问题 key: 20180303 tags: GIT 版本管理 modify_date: 2 ...

  5. [转]Win下必备神器之Cmder

    原文地址http://www.jeffjade.com/2016/01/13/2016-01-13-windows-software-cmder/ 诚言,对于开发码字者,Mac和Linux果断要比Wi ...

  6. nginx Win下实现简单的负载均衡(2)站点共享Session

    快速目录: 一.nginx Win下实现简单的负载均衡(1)nginx搭建部署 二.nginx Win下实现简单的负载均衡(2)站点共享Session 三.nginx Win下实现简单的负载均衡(3) ...

  7. win下配置的ES中的数据在哪里可以看到?三种方式你看那种更加高大上!!!(win_Elasticsearch)

    在上一篇博客<使用logstash将Mysql中的数据导入到ElasticSearch中(详细步骤,win_Elasticsearch)>中我们提到将数据插入到es中,那我怎么知道数据是否 ...

  8. win_redis【win下安装使用redis】

    最初在linux下使用下载过redis,linux下的安装redis,但是我们在平时的java项目中普遍使用的是win下的redis,所以这里在win下安装redis. 首先重温一下redis,red ...

  9. win下svn常用操作笔记

    svn基本命令 checkout 检出 把服务器代码下载到本地一份 update 更新 把服务器上的最新代码更新到本地 commit 提交 把本地代码提交到服务器上 win下svn的客户端工具Tort ...

  10. win下anaconda装python2.7和3.5以及jupyter共存 (本篇实践通过)

    参考了以下两篇文章: 文章1: win下anaconda装python2.7和3.5以及jupyter共存 即可安装成功 此时在anaconda3的安装路径中会找到envs文件夹,里面是py27的文件 ...

最新文章

  1. Fastp对fastq质控
  2. Java的finally执行顺序_Java return和finally执行顺序
  3. 数据结构:超好用的数据结构与算法可视化工具(USFCA旧金山大学)
  4. 历年高考报考人数和录取人数
  5. Linux系统调用(syscall)原理(转)
  6. win10如何关闭F1~F12快捷键?
  7. ubuntu16.04打造vim和python3的IDE
  8. mysql代码的核心类_mysql源码---核心类 (1)线程类
  9. typescript的基本结构_上帝视角看 TypeScript
  10. 一段程序看懂比特币原理
  11. 处理数字音乐文件用计算机软件,工具软件商标注册属于第几类?
  12. python pip下载安装教程_windows下python安装pip图文教程
  13. 防火墙阻止应用程序linux,win10系统下如何解除被防火墙阻止运行的应用程序
  14. seekbar自定义android,Android自定义SeekBar实现视频播放进度条
  15. error(nargchk(1,2,nargin))
  16. MySQL重置密码(适用Windows)
  17. 03-04年度国家级精品课程一览
  18. 本题要求对任意给定的一位正整数N,输出从1*1到N*N的部分口诀表。
  19. Win 7XP2003Vista下单/双网卡实现×××+NAT代理服务器共享上网的方法
  20. 阿ken的HTML、CSS的学习笔记_表单的应用(笔记七)

热门文章

  1. 如果你用过这些电子产品 证明你老了
  2. 老病毒再现新系统--警惕恶意代码死灰复燃,(NTDETECT.EXE,NTDETECT.COM)
  3. MATLAB中plot函数的用法
  4. android修改ipv4,Android 设置ipv4优先策略访问网络
  5. modeler 连接oracle,用 IBM SPSS Modeler 整合不同数据库之间的数据
  6. 简单提取iOS13的ipsw固件的内置壁纸(或文件)
  7. Spark worker内存不足导致任务失败,报错Likely due to containers exceeding thresholds, or network issues
  8. Caused by : java.lang.NoSuchMethodError
  9. SCI缩略词如何定义
  10. docker镜像与容器基本的基本操作