Press "Enter" to skip to content

CPU中的核心数线程数(如四核八线程)与程序中所说的线程、进程有什么区别?

Last updated on 2019-12-10

1、CPU的核心数与线程数
2、程序说的线程与进程的区别
3、什么是时间片轮转调度算法

CPU又称为中央处理器(central processing unit),由运算器、控制器、寄存器、输入设备和输出设备组成,这些器件由处理数据总线相连。

它们在处理器中,分工明确:
运算器:进行数据的处理。
寄存器:进行数据的存储。
控制器:控制各种器件工作。
输入设备:将人们熟悉的信息形式转化为机器能识别的信息形式,如键盘、鼠标等。
输出设备:将计算机运算的结果转化为人们熟悉的信息形式,如显示器、打印机等。
处理数据总线:连接各种器件,使各个器件进行数据的传送。

1、CPU的核心数与线程数

 

CPU的核心数与线程数是硬件的概念

如四核八线程 ,四核好理解 四个核心就是了

  1.  核心(Core)是CPU最重要的组成部分。CPU中心那块隆起的芯片就是核心,是由单晶硅以一定的生产工艺制造出来的,CPU所有的计算、接受/存储命令、处理数据都由核心执行
  2. 四核处理器即是基于单个半导体的一个处理器上拥有四个一样功能的处理器核心,也可以理解为将四个物理处理器核心整合入一个核中
  3. 四核与双核的区别在于对多任务处理上,四核心的CPU开四个程序要比双核心CPU开四个程序要快,再就是多核心在进行大数据量运算时优势更大
  4. 四核八线程是指使用了超线程技术 , 把一个物理核心,模拟成 两个逻辑核心, 理论上要像八颗物理核心一样在同一时间执行八个线程,所以设备管理器和任务管理器中会显示出八个核心,但事实上并不是真正的八个核心,四核八线程就是真四核,虚拟八核
  5. 虽然采用超线程技术能同时执行两个线程,但它并不象两个真正的CPU那样,每个CPU都具有独立的资源。当两个线程都同时需要某一个资源时,其中一个要暂时停止,并让出资源,直到这些资源闲置后才能继续。因此超线程的性能并不等于两颗CPU的性能

八线程就是能让八个线程同步执行。四核8线程是4个物理核心模拟成8个逻辑核心,8核是8个物理核心

2、程序说的线程与进程的区别

 

程序说的线程进程是软件的概念

  1. 进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。
  2. 线程是程序执行中一个单一的顺序控制流程,是程序执行流的最小单元
  3. 一个程序就是一个进程,一个进程中可以包含若干个线程,每个进程至少1个线程,进程是线程的容器
  4. 进程是一个程序在一个数据集合上动态执行的过程。进程是资源分配的基本单位,而线程是CPU调度的基本单位。严格地讲,操作系统调度某个进程中的一个线程占用CPU,而不是让一个进程占用CPU。
  5. 在一个时间点上。Cpu只能支持一个线程的运行(由于windows在一个进程中将多个线程执行速度非常的快。所以好多人认为是那是多线程。其实在同一个时间点上只有一个线程在运行)操作系统以某种算法选择一个状态为“就绪”的线程占用CPU。一个进程中包含一个或多个线程,这些线程并发执行。在多CPU内核的机器上,一个进程的多个线程可以同时在不同的CPU内核上执行;在单核CPU的机器上,这些线程以操作系统的调度次序轮流占用CPU。

线程与进程的区别归纳:

a.地址空间和其它资源:进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。
b.通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。
c.调度和切换:线程上下文切换比进程上下文切换要快得多。
d.在多线程OS中,进程不是一个可执行的实体

由以上结论可以得出 1核CPU同时只能运行一个线程来切换运行,而多核如四核则是四个线程同时运行来切换轮转的,故此多核运行速度较快

操作系统通过时间片轮转调度算法,可以在一个CPU上让多个线程轮流执行,只不过cpu运行速度极快 切换的过程是用户无感知的,看起来似乎是很多线程进程同时运行了。

3、调度算法之时间片轮转算法

 

一.轮转法的基本原理:

      根据先来先服务的原则,将需要执行的所有进程按照到达时间的大小排成一个升序的序列,每次都给一个进程同样大小的时间片,在这个时间片内如果进程执行结束了,那么把进程从进程队列中删去,如果进程没有结束,那么把该进程停止然后改为等待状态,放到进程队列的尾部,直到所有的进程都已执行完毕

二.进程的切换

   时间片够用:意思就是在该时间片内,进程可以运行至结束,进程运行结束之后,将进程从进程队列中删除,然后启动新的时间片

时间片不够用:意思是在该时间片内,进程只能完成它的一部分任务,在时间片用完之后,将进程的状态改为等待状态,将进程放到进程队列的尾部,等待cpu的调用

三.关于时间片大小的选择

时间片过小,则进程频繁切换,会造成cpu资源的浪费

时间片过大,则轮转调度算法就退化成了先来先服务算法

Leave a Reply

Your email address will not be published. Required fields are marked *