在一个带有2个物理x86/amd64处理器(P0+P1)的Windows操作系统中,运行着2个进程(A+B),每个进程都有两个线程(T0+T1)。是否可能(甚至是常见的)看到以下情况:
简而言之,我想知道在多处理器机器上,操作系统是否可以自由地安排来自任何进程的任何线程在任何时间运行,而不考虑其他进程的其他线程已经在运行什么。
编辑:为了澄清这个愚蠢的例子,假设进程A的线程A:T0具有与处理器P0的亲和性(A:T1具有与P1的亲和性),而进程B的线程B:T0具有与处理器P1的亲和性(B:T1具有与P0的亲和性)。这些处理器可能是核心或插座无关紧要。
是否有一流的进程上下文切换概念?Perfmon在Thread对象下显示上下文切换,但在Process对象下没有任何东西。
P0:A:T0
与 P1:B:T0
同时运行,
然后,在1个(或2个?)上下文切换之后,
P0:B:T1
与 P1:A:T1
同时运行。简而言之,我想知道在多处理器机器上,操作系统是否可以自由地安排来自任何进程的任何线程在任何时间运行,而不考虑其他进程的其他线程已经在运行什么。
编辑:为了澄清这个愚蠢的例子,假设进程A的线程A:T0具有与处理器P0的亲和性(A:T1具有与P1的亲和性),而进程B的线程B:T0具有与处理器P1的亲和性(B:T1具有与P0的亲和性)。这些处理器可能是核心或插座无关紧要。
是否有一流的进程上下文切换概念?Perfmon在Thread对象下显示上下文切换,但在Process对象下没有任何东西。