linux 超线程及其原理,以及如何查看是否开启了超线程

您所在的位置:网站首页 怎么查看线程 linux 超线程及其原理,以及如何查看是否开启了超线程

linux 超线程及其原理,以及如何查看是否开启了超线程

2023-11-20 07:36| 来源: 网络整理| 查看: 265

1. 超线程

        超线程是英特尔开发出来的一项技术,使得单个处理器可以象两个逻辑处理器那样运行,这样单个处理器以并行执行线程。 这里的单个处理器也可以理解为CPU的一个核心;这样便可以理解为什么开启了超线程技术后,逻辑CPU的数目是核心数的两倍了。

2. 超线程技术实现并行操作的原理

        一个线程在执行时会占用CPU资源,其他线程想要得到执行就必须等待该线程将CPU资源让出。

        利用超线程技术,模拟出的两个逻辑内核共享同一个CPU资源,所以同一时刻可以有两个线程都占用CPU资源,因此这两个线程都可以得到执行,这就是实现同一时间执行两个线程的并行操作。

        比如说:

        有个单核的CPU,想要运行一个多线程的程序,通常情况下,只能是由Cpu在线程之间来回调度,但是当开启了超线程之后,可以在一个线程执行整数指令集的时候,而恰好在这个时候,另一个线程执行浮点指令集,而这两个指令集分别由整数指令单元和浮点指令单元来执行。就可以同时执行这两个线程,这就叫超线程。而且实际上,是有大量资源被闲置着的。超线程技术允许两个线程同时不冲突地使用CPU中的资源。指令单元闲置,可以通过超线程的技术来达到提高利用率。这叫做硬件多线程技术。

 3. 如何查看是否开启了超线程

     通过查看物理CPU数,每个CPU的逻辑核数,CPU线程数可以得知是否开启了超线程。

物理CPU数 物理CPU就是插在主机上的真实的CPU硬件,在Linux下可以数不同的physical id 来确认主机的物理CPU个数。可以看到 当前机器拥有2颗物理CPU  [root@localhost daxiang]# cat /proc/cpuinfo | grep "physical id" | sort | uniq physical id : 0 physical id : 1 单个CPU的逻辑核心数量 我们常常会听说多核处理器,其中的核指的就是核心数。在Linux下可以通过cores来确认主机的物理CPU的核心数。可以看到每颗CPU拥有6个逻辑核心 [root@localhost daxiang]# cat /proc/cpuinfo | grep "cores" | uniq cpu cores : 6  系统CPU线程数 逻辑CPU跟超线程技术有联系,假如物理CPU不支持超线程的,那么逻辑CPU的数量等于核心数的数量;如果物理CPU支持超线程,那么逻辑CPU的数目是核心数数目的两倍。在Linux下可以通过 processors 的数目来确认逻辑CPU的数量。当前机器拥有24个CPU线程 [root@localhost daxiang]# cat /proc/cpuinfo | grep "processor" | wc -l 24

综上所述:这台机器拥有2颗物理CPU,每个CPU有6个逻辑核心,系统一共拥有24个CPU线程。显然开启了多线程



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3