当前位置:首页 > 热点 > 正文

什么是cpu调度的基本单位_什么是cpu调度的基本单位

  • 热点
  • 2023-05-17 23:16:13
  • 105
摘要: 线程是cpu调度的基本单位 CPU调度的基本单位是是线程。线程是操作系统能够进行运算调度的最小单位。一条线程指的是进程中一个单一...

线程是cpu调度的基本单位

CPU调度的基本单位是是线程。

线程是操作系统能够进行运算调度的最小单位。

一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指陵谈芦内核线程(kernel thread),而把用户线程(user thread)称为线程。

CPU组成:

1、逻辑部件

英文Logic components;运算逻辑部件。可以执行定点或浮点算术运算操作、移位操作以及逻辑操作,也可执尺带行地址运算和转换。

2、寄存器

寄存器部件,包括寄存器、专用寄存器和控制寄存器。 通用寄存器又可分定点数和浮点数两类,它们用来保存指令执行过程中临时存放的寄存器操作数和中间(或最终)的操作结果。 通用寄存器是中央处理器的重要部件之一。

3、控制部件

英文Control unit;控制部件,主要是负责对指令译码,并且发出为完成每条指令所要执行的各个操作的控制信号。

其结构有两种:一侍返种是以微存储为核心的微程序控制方式;一种是以逻辑硬布线结构为主的控制方式。

cpu调度的基本方式

我们知道,程序需要获得CPU的资源才能被调度和执行,那么当一个进程由于某种原因放弃CPU然后进入阻塞状态,下一个获得CPU资源去被调度执行的进程会是谁呢?下图中,进程1因为阻塞放弃CPU资源,此时,进程2刚IO操作结束,可以获得CPU资源去被调度,进程3的时间片轮转结束,也同样可以获得CPU资源去被调度,那么,此时的操作系统应该安排哪个进程去获得CPU资源呢?这就涉及到我们操作系统的CPU调度策略了。

根据生活中的例子,我们很容易想到以下两种策略CPU调度的直观想法:1.FIFO谁先进入,先调度谁,这是一种非常简单有效的方法,就好比我们去饭堂打饭,谁先到就给谁先打饭。但是这种策略会遇到一个问题:如果遇到一个很小的任务,但是它是最后进入的,那么必须得前面一大堆任务结束完后才能执行这个小小的任务,这样就感觉很不划算呀!因为我只是简简单单的一个小任务,但是从打开这个任务到结束这个任务要很久。这显然不符合我们的需求,因而我们会想到第2种策略,就是先调度小任务,后调度大任务。2.Priority很简单,就是任务短的优先执行,但是此时又有问题了,任务虽然短,但是它的执行时间不一定短,就好比在一个银行业务迹吵中,客户填写一个表,这是一个非常短的任务吧——就单单填个表,但是这个表很长很长,那么这个短任务它的执行时间就很长了,我们怎么知道这个短的任务将来会执行多长的时间呢?所以,这样的策略还是依然有问题。那么,面对诸多的场景,如何设计调度算法呢?首先,我们要明白我们的算法应该让什么更好呢?面对客户:银行调度算法的设计目标应该是用户满意;而面对进程:CPU调度的目标应该是进程满意。那怎么让困才能让进程满意呢?那就是时间了。进程希望尽早地结束任务,这就是周转时间(从任务到达到任务结束)要短,而且希望用户的操作能够尽快地被响应,这就是响应时间(从操作发生到响应)要短。而且系统内耗时间要少,吞吐量(任务的完成量)要大,系统需要把更多的时间用在任务的执行上,而不能老是去做无关紧要的事情,例如:频繁切换任务,切换栈,分配资源等事情。同时,系统还要去合理地调配任务。那么,CPU的调度策略如何做到合理呢?首先得明白系统中有以下的几种矛盾。1.吞吐量和响应时间之间有矛盾响应时间小=切换次数多=系统内耗大=吞吐量小由于需要较短的响应时间,那么就得频繁地切换任务,这样系统的很多时间都花在切换任务上面了,系统的内耗大了,吞吐量就小了。2.前台任务和后台任务的关注点不同前台任务关注响应时间,后台任务关注周转时间。前台任务例如我们的word文档,我们打一个字,需要立马显示在文档中,这就是word文档这个任务关注的是响应时间;而后台任务中,例如我们的javac编译java代码,它的周转时间要小,即该任务从进入到结束所花的时间要小,即编译完成的时间要小。约束型任务和CPU约束型任务各有各的特点IO约束型任务就是使用CPU的时间较少,进行IO操作的时间较长,CPU约束型的任务就是使用CPU的时间较长。因此,要做到合理,需要折中、综合考虑以上的几种矛盾。由此,产生了一些CPU的调度算法,在下一节我们将重点讲述这些CPU调度算法。

关注小鲸融创,一起深度学习金融科技!

编辑于 2019-12-11 · 著作权归作者所有坦州念

赞同 1

评论

展开全部

进程和线程的区别

进程和线程的区别如下:

1、两者的本构关系

进程是具有一定独立功能的程序枣侍和关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。

线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。

2、独立关系

一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行。

相对进程而言,线程是一个更加谈猜接近于执行体的概念,它可以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。

3、操作系统资源管理方式

进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的凳盯地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量。

但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。

在引入线程的操作系统中,资源分配和调度的基本单位是什么?进程还是线程?为什么?

进程(昌脊Process)是系统进行资源分配和调度的基本单位。

进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位。

在开销方面:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),枝迅纳线程之间切换的开销小。

所处环境:在操作系统中能同时运行多个进程(程序);而在同一个进程(程序)中有多个线程同时执行(通过CPU调度,在每个时间片中只有一个线程执行)

扩展资料

一个线程可以创建和撤销另一个线程;同一个猛没进程中的多个线程之间可以并发执行。相对进程而言,线程是一个更加接近于执行体的概念,它可以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。

线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。

进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。

线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。

节点、cpu、cpu核、进程、线程

1. 一个CPU有多个核心(物理核心),接触到的服务器叫做节点,一个节点也可以有1-多个CPU,1个CPU有多个CPU核心, 大多数计算服务器都是2个CPU的 。

进程 :进程是程序运行的一个实体的运行过程,是系统进行资源分配和调配的一个独立单位。

线程 :线程是进程运行和执行的最小调度单位

进程是操作系统进行资源(包括cpu、内存、磁盘IO等)分配的最小单位。

线程是cpu调度和分配的基本单位。

2. 如果只启用1个CPU核心那就是串行,启动多个CPU核心就是并行。

资源分配给进程,线程共享进程资源。

概括起来是: 一个节点可以有多个CPU,一个CPU可以有多个CPU核心,一个CPU核心可以有一个以上的线程。 一个核心在某个时间点只能执行一知衡宏个进程,一个程序可以调用多个进程,一个进程可调用至少一个线程,如果一个进程同时调用的线程数超过CPU核心的线程数,则需要调用其他CPU核心实现并行。一个进程只能在本节点运行,线程是进程派生的并共享进程资源,所以多线程并行是不能跨节点运行,即 OPENMP(多线程搭册并行任务)是不能跨节点的 。

3. 节点 :对应的是服务器。

核数目 :是节点数*每个节点核心个数拦缓....

如果有10台计算服务器每个服务器有两个八核的cpu;那么节点数目总的就是10,调用两个节点计算,cpu就是4,核数就是32核

参考:

CPU调度的基本单位是

在CPU看来,所有的任务都是一个一个轮流执行的悔晌,一个任务可以被CPU执行,说明它所申请的除了CPU以外的所有资源,都已经获得盯档。这里除了CPU以外的所有资源构成程序的执行环境,也称为程序的上下文。

一个进程的处理过程是:加载上下文—CPU执行—保存上下文

进程的切换,也是同样的处理过程,每次都要加载上下文和保凯前乱存上下文。这样每次的调入、调出,对系统来说,是会造成一定的开销的。于是就引入了“线程”这个概念,一个进程可以分为一个或多个线程,这些线程共享一样的上下文,也就是说,属于同一个进程的线程之间的切换,就少了加载/保存上下文,开销减少,效率就提高了。

进程是资源分配的最小单位,在没有引入线程以前,进程既是最小资源分配单位,也是最小调度单位。后来引入了线程,最小调度单位就是线程,资源分配和调度分开了,目的是为了更好的利用CUP。

什么是cpu调度的基本单位的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于什么是cpu调度的基本单位、什么是cpu调度的基本单位的信息别忘了在本站进行查找喔。

发表评论