广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

佛山Java培训CPU 的线程与操作系统的线程关系

作者:admin01发布时间:2021-07-10分类:Java技术浏览:675


导读:CPU中的线程和操作系统(OS)中的线程显然是两个不同的概念,但在实际调度中又有些关联。在本文中,我们将弄清楚CPU中的线程和操作系统中的线程之间的区别。 1....

CPU中的线程和操作系统(OS)中的线程显然是两个不同的概念,但在实际调度中又有些关联。 在本文中,我们将弄清楚 CPU 中的线程和操作系统中的线程之间的区别。


  1. CPU 中的线程


  CPU中的线程,我们称之为线程,与OS中的线程名称相同。 它来自同步多线程 (SMT) 的概念。 我们现在在Intel的CPU上看到它,其实这不是Intel的发明。 它首先起源于学术界,IBM在硬件上比英特尔更早意识到。 英特尔最初使用这项技术时,它被称为 SMT,但后来更名为 HT(Hyper Threading)。 可能会清晰一些(毕竟最多有两个线程,比IBM怪物少),会更上口。


  我们现在看到的CPU,很多都支持HT,而经常看到的2C4T就是2核4线程(T,Thread)。 内核中的线程是对称等价的,软件上没有区别,BIOS只能通过一些特殊的手段来区分。 其实2C4T中的4个线程在调度的时候没有本质区别。 他们都有自己独立的 ID 号:APIC ID。 只要知道别人调度的APIC ID,就可以用自己的Local APIC寄存器发出两个IPI(Inter-Processor Interrupts),指定的倒霉的人就会开始被调度,莫名其妙地在指定地址执行指令( 虽然是实模式)。 当然,IPI 也可以广播,让所有其他线程执行指定的任务。


  实际上,CPU 中有多少个 Thead。 操作系统本身不会检测到它。  BIOS 通过 ACPI 向 OS 报告。 那么BIOS怎么知道有多少线程呢? 就是通过广播IPI让每个线程自己登录。 是不是很简单?


  2. 操作系统中的线程


  OS中的Thread有自己的栈空间,与同一进程中的其他线程共享地址空间等等,因为这些基础知识大家都知道,这里就不啰嗦了。


  这个主题不是那个主题


  操作系统中可以有多个进程,进程中的线程甚至更多,往往有几十个几百个。  CPU的Thread就是这么固定的,是一种稀缺资源。 两者都称为线程,因为它们是调度的基本单位。 软件操作系统调度的基本单位是OS Thread,硬件调度的基本单位是CPU中的线程。 操作系统负责将它生成的软线程调度到CPU中的硬线程。


  免责声明:本文文字及图片均由编者自网络转载。 版权属于原作者。 如有侵权,请及时联系我们删除。

  以上是小编带来的最新资讯。 喜欢的朋友可以继续关注本站最新动态,或者咨询在线客服。


Java技术排行
标签列表
网站分类
文章归档
最近发表