首页 > 系统相关 >linux cpu 相关

linux cpu 相关

时间:2022-09-30 12:44:57浏览次数:68  
标签:逻辑 id cpu 内核 linux 超线程 相关 CPU 物理

转载:https://www.jianshu.com/p/6a53819fa89b


 

一、物理CPU,物理CPU内核,逻辑CPU概念详解

1.说明

CPU(Central Processing Unit)是中央处理单元,
本文介绍物理CPU,物理CPU内核,逻辑CPU,
以及他们三者之间的关系,
一个物理CPU可以有1个或者多个物理内核,
一个物理内核可以作为1个或者2个逻辑CPU。

2.物理CPU

物理CPU就是计算机上实际安装的CPU,
物理CPU数就是主板上实际插入的CPU数量。
在Linux上查看/proc/cpuinfo,
其中的physical id就是每个物理CPU的id,
有几个不同的physical id就有几个物理CPU。

3.物理CPU内核

每颗物理CPU可以有1个或者多个物理内核,
通常每颗物理CPU的内核数都是固定的,
单核CPU就是有1个物理内核,
双核CPU就是有2个物理内核。
在Linux上查看/proc/cpuinfo,
其中的core id就是每颗物理CPU的物理内核id,
有几个不同的core id就有几个物理内核。
总的CPU物理内核数 = 物理CPU数 * 每颗物理CPU的内核数

4.逻辑CPU

操作系统可以使用逻辑CPU来模拟真实CPU。
在没有多核处理器的时候,
一个物理CPU只能有一个物理内核,
而现在有了多核技术,
一个物理CPU可以有多个物理内核,
可以把一个CPU当作多个CPU使用,
为了与物理CPU区分开来,称其为逻辑CPU。
没有开启超线程时,逻辑CPU的个数就是总的CPU物理内核数。
然而开启超线程后,逻辑CPU的个数就是总的CPU物理内核数的两倍。
在Linux上查看/proc/cpuinfo,
其中的processor就是逻辑CPU,
有几个processor就有几个逻辑CPU。
总的逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数
总的逻辑CPU数 = 总的CPU物理内核数 * 超线程数

5.几核几线程

基于上面的基本概念,
理解一下常说的几核几线程。
如果计算机有一个物理CPU,
是双核的,支持超线程。
那么这台计算机就是双核四线程。
实际上几核几线程中的线程数就是逻辑CPU数。
对于两路四核超线程计算机,
两路指计算机有2个物理CPU,
每颗CPU中有4个物理内核,
CPU支持超线程,
就有2*4*2=16个逻辑CPU,
这就是通常所谓的16核计算机。

6.两路四核超线程

实际能看到的2个物理CPU:

   

实现16个逻辑CPU的原理图:

 


标签:逻辑,id,cpu,内核,linux,超线程,相关,CPU,物理
From: https://www.cnblogs.com/haoee/p/16744562.html

相关文章

  • linux下使用yum安装nginx
    上一次发了本地安装nginx,这次发一个yum安装nginx1.安装nginx源我们本机有的可能没有附带nginx源,所以我们这里先进行安装一个nginx源#rpm-ivhhttp://nginx.org/packag......
  • linux内核离线升级步骤详解【亲测可用】
    由于种种原因,linux的内核版本需要升级,但由于生产原因往往不能在线升级,在此记录笔者本人昨晚的的离线升级步骤,亲测可用。我们知道,红帽和CentOS同源同宗,内核升级步骤也是一......
  • Java 模拟Terminal连接 Linux Console 源代码
    代码和效果如下,已经转换java文件为exe文件,注意要在Pom文件里面添加依赖。  packagecom.javassh3.javassh3;/*-*-mode:java;c-basic-offset:2;indent-tabs-mode:n......
  • linux切割日志文件的shell脚本
    #!/bin/bash#获取前一天的日期suffix=`date-d"-1day""+%Y%m%d"`#split命令用于切割文件#-bSIZE:SIZEisanintegerandoptionalunit(example:10Mis10*102......
  • base64相关知识(包含标准及非标准base64知识,附带转换表)
    base64是用于传输8Bit字节码的编码方式之一。Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看......
  • Linux下的shell工作原理是什么?
    Linux系统提供给用户的最重要的系统程序是Shell命令语言​​解释程序​​​。它不属于内核部分,而是在核心之外,以用户态方式运行。其基本功能是解释并执行用户打入的各种命......
  • (int   *)&i 与int   increment(int   *   &   i) 相关理解的整理
    Q1:#include"stdio.h"voidmain(){inti[]={2,3};int*j=i;int**k=&j;//双指针,正确;int*p=NULL;//k=&i;//i就表示一个数组地址,&......
  • linux初始化MySQL数据库
    1.停止MySQL  2.删除数据库中所有的文件及日志[root@localhost~]#rm-rf/var/lib/mysql/*#删除mysql目录下所以文件[root@localhost~]#rm-rf/var/log/mysqld.......
  • LINUX常用命令备忘
    问1:linux在虚拟机下咋么从图形模式切换到命令行模式的啊答:运行init3NOTE:在windows虚拟机模式下,Ctrl+Alt+F1~F7,是失效的。但如下却屡试不爽(特别感谢乐乐):终端模式-->命令行......
  • linux可控的复杂度原因探讨
    一、影响复杂度控制的因素总结1)架构。要拥有绝对良好的架构。否则操作系统这种“高楼大厦”是不可能建成的,建到一半就跨了,而且不坚固。2)模块性:保持清晰,保持简洁。(keepingi......