zoukankan      html  css  js  c++  java
  • 【进程调度】关于CPU的sockets、dies、cores、threads含义理解

    1. 先以 qemu 的配置参数为例来分析一下,

    qemu 可以通过 -smp 参数指定 cpu 相关的配置,如核心的个数等,其中 SMP 是指 Symmetrical Multi-processing 对称多处理器结构,

    -smp [cpus=]n[,maxcpus=cpus][,cores=cores][,threads=threads][,dies=dies][,sockets=sockets]
      set the number of CPUs to 'n' [default=1]
      maxcpus= maximum number of total cpus, including
      offline CPUs for hotplug, etc
      cores= number of CPU cores on one socket (for PC, it's on one die)
      threads= number of threads on one CPU core
      dies= number of CPU dies on one socket (for PC only)

    笔者配置  -smp sockets=2,dies=2,cores=2,threads=2  参数启动 linux 虚拟机,
    再通过指令 cat /proc/cpuinfo 分析当前的 CPU 架构,

    / # cat /proc/cpuinfo | grep "physical id" | sort -u
    physical id : 0
    physical id : 1

    可以得到物理 CPU 个数为 2,即 sockets=2 的体现,

    / # cat /proc/cpuinfo | grep "cpu cores" | sort -u
    cpu cores : 4

    每个 CPU 有4个核心,即 dies=2,cores=2 的体现,

    / # cat /proc/cpuinfo | grep "siblings" | sort -u
    siblings : 8 

    每个 CPU 有8个处理线程,即 dies=2,cores=2,threads=2 的体现,

    / # cat /proc/cpuinfo | grep "processor"
    processor : 0
    processor : 1
    processor : 2
    processor : 3
    processor : 4
    processor : 5
    processor : 6
    processor : 7
    processor : 8
    processor : 9
    processor : 10
    processor : 11
    processor : 12
    processor : 13
    processor : 14
    processor : 15

    再看一下,当前计算机拥有的处理器个数总共为 16 个,
    所以得出  processors = sockets*dies*cores*threads 

    2. 再以笔者所认为的结构层次构造出一个示意图,其中 DIE 只包含 CORES 并没有一些外设的控制器等,通过图可以更加容易理解:

     

  • 相关阅读:
    Model1简介
    修改Maven的本地仓库地址
    JavaWeb实现上传文件
    数据库
    集合
    JavaWeb
    Java基础
    Redis 中 redis.conf配置详细解析
    利用Java生成二维码
    利用dom4j读写XML
  • 原文地址:https://www.cnblogs.com/GyForever1004/p/13600183.html
Copyright © 2011-2022 走看看