2011-01-10 64 views
0

我有一个i3英特尔CPU(超线程双核)
我通常使用侧边栏小工具来显示每个核心使用情况,从(0 - 3)单独行中监控我的CPU使用情况。
但最近我注意到核心数字0没有被使用。
经过一番搜索,我碰到了一个主题,解释了数字和核心0,2是真正的核心,1,3是超线程核心的想法,但据此,这意味着我的CPU的真正核心从来没有使用过甚至我的另一个核心也没用。
和阅读更多我碰到这个multi-core-cpu-single-thread-behaviour-not-achieving-100,说开关发生,但仍没有回答上面的问题,真正的核心0和为什么只有1核心使用。多核和CPU使用

http://img641.imageshack.us/img641/8837/cpuusage.png

,你可以看到这是正常的CPU使用率,为什么他们不被其他程序为什么是活跃,即使很多只有1个核心发生了什么核心0,2,3程序正在运行。

(ALL进程正在使用的所有核心,通过亲和检验)

+1

真实和超线程核心之间的区别是没有意义的。超线程核心可以交错执行两个*线程*。但是这些都没有比其他任何一个都更“真实”。 – 2011-01-10 20:55:18

+0

尽管我理解了编程需要CPU如何工作,但对于SuperUser来说,这似乎更适合我。 – Suma 2011-01-10 20:58:02

回答

1

使用超线程技术在一个内核上的两个逻辑CPU是等效的。它不是一个真实的,第二个是超线程的。两者都共享相同的物理核心。根本不管它们中的哪一个被使用。最好首先在不同的物理内核上安排线程,并且只有在使用了所有物理内核之后,才能在相同的内核上使用第二个逻辑CPU,这看起来正如您所描述的。

0

也许是因为那里只是没有更需要计算能力的处理,并且因为SIBLING级调度被认为是更昂贵。也就是说,为了简单起见,让我们考虑工作密集型的进程,在将核心(一组N个线程)“重载”到另一个程序之前,会先分配给不同的核心。换句话说,6芯4线机器通常以0,4,8,12,16,20,1,5,9,13,17,21,2,6,10的顺序填充24个螺纹,14,18,22,3,7,11,15,19,23。(由于“自发”过程迁移,轻微偏差当然是可能的。)

而且这不是只有一个线程被使用:你自己的graphpics会显示Core 3和3)和Core 4 [sic](它是线程3和4),分别为1%和2%。你在进程列表中看到的大多数进程都不运行,他们只是在睡觉。