linux的多核是怎么运行de,Linux下如何查看CPU信息, 包括位数和多核信息

查看当前操作系统内核信息

#uname -a

Linux redcat 2.6.31-20-generic #58-Ubuntu SMP Fri Mar 12 05:23:09 UTC 2010 i686 GNU/Linux

查看当前操作系统发行版信息

#cat /etc/issue

Ubuntu 9.10 /n /l

查看cpu型号

# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

2  Intel(R) Core(TM)2 Duo CPU     P8600  @ 2.40GHz

(看到有2个逻辑CPU, 也知道了CPU型号)

查看物理cpu颗数

# cat /proc/cpuinfo | grep physical | uniq -c

2 physical id    : 0(说明实际上是1颗2核的CPU)

查看cpu运行模式

# getconf LONG_BIT

32

(说明当前CPU运行在32bit模式下, 但不代表CPU不支持64bit)

查看cpu是否支持64bit

#cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l

2

(结果大于0, 说明支持64bit计算. lm指long mode, 支持lm则是64bit)

查看cpu信息概要(昨天看aix的时候刚发现的,在ubuntu上竟然也有~):

#lscpu

Architecture:          i686                            #架构686

CPU(s):                2                                   #逻辑cpu颗数是2

Thread(s) per core:    1                           #每个核心线程数是1

Core(s) per socket:    2                           #每个cpu插槽核数/每颗物理cpu核数是2

CPU socket(s):         1                            #cpu插槽数是1

Vendor ID:             GenuineIntel           #cpu厂商ID是GenuineIntel

CPU family:            6                              #cpu系列是6

Model:                 23                                #型号23

Stepping:              10                              #步进是10

CPU MHz:               800.000                 #cpu主频是800MHz

Virtualization:        VT-x                         #cpu支持的虚拟化技术VT-x(对此在下一博文中解释下http://hi.baidu.com/sdusoul/blog/item/5d8e0488def3a998a5c272c0.html)

L1d cache:             32K                         #一级缓存32K(google了下,这具体表示表示cpu的L1数据缓存为32k)

L1i cache:             32K#一级缓存32K(具体为L1指令缓存为32K)

L2 cache:              3072K                      #二级缓存3072K

最后来个大而全的:

#cat /proc/cpuinfo

processor    : 0

vendor_id    : GenuineIntel

cpu family    : 6

model        : 23

model name    : Intel(R) Core(TM)2 Duo CPU     P8600  @ 2.40GHz

stepping    : 10

cpu MHz        : 800.000

cache size    : 3072 KB

physical id    : 0

siblings    : 2

core id        : 0

cpu cores    : 2

apicid        : 0

initial apicid    : 0

fdiv_bug    : no

hlt_bug        : no

f00f_bug    : no

coma_bug    : no

fpu        : yes

fpu_exception    : yes

cpuid level    : 13

wp        : yes

flags        : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm ida tpr_shadow vnmi flexpriority

bogomips    : 4788.60

clflush size    : 64

power management:

processor    : 1

vendor_id    : GenuineIntel

cpu family    : 6

model        : 23

model name    : Intel(R) Core(TM)2 Duo CPU     P8600  @ 2.40GHz

stepping    : 10

cpu MHz        : 800.000

cache size    : 3072 KB

physical id    : 0

siblings    : 2

core id        : 1

cpu cores    : 2

apicid        : 1

initial apicid    : 1

fdiv_bug    : no

hlt_bug        : no

f00f_bug    : no

coma_bug    : no

fpu        : yes

fpu_exception    : yes

cpuid level    : 13

wp        : yes

flags        : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm ida tpr_shadow vnmi flexpriority

bogomips    : 4787.96

clflush size    : 64

power management:

补充,linux下通过c获取CPU个数信息

#include

#include

int main()

{

int cpu_num;

cpu_num = sysconf(_SC_NPROCESSORS_CONF);

printf("_SC_NPROCESSORS_CONF=%d/n",cpu_num);

cpu_num = sysconf(_SC_NPROCESSORS_ONLN);

printf("_SC_NPROCESSORS_ONLN=%d/n",cpu_num);

return 0;

}

/*

* - _SC_NPROCESSORS_CONF

*       The number of processors configured.

*

* - _SC_NPROCESSORS_ONLN

*       The number of processors currently online (available).

*/

Linux下获得CPU个数一个简单方法就是查看/proc/cpuinfo文件。看出现processor字样的行数是多少条,即有多少个逻辑CPU(包括多核,超线程)。

因此cmd下输入下面命令即可:

cat /proc/cpuinfo | grep processor | wc -l

因此c++程序中很自然的想到使用strstr函数查找processor关键词出现次数即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值