0


【操作系统】第七话 · 处理机调度

🌕写在前面



​​​​​​​本专栏的名字为【闪耀计划】,目的是通过百天刷题计划,通过题目和知识点串联的方式,完成对计算机操作系统的复习和巩固;同时还配有专门的笔记总结和文档教程哦!想要搞定,搞透计算机操作系统的同学,本专栏将会通过模块化的分类,刷够1000道题,为大家提供点对点的考点相关知识轰炸!值得注意的是,本专栏将会通过教程+课后习题的方式来进行巩固教学,课后习题的题量也是算入总题数的哦!

🎉订阅本专栏,将为你带来最一手的备战秘籍!🎉

🍊博客主页:kikoking的江湖背景🍊


🌟🌟往期回顾🌟🌟

【操作系统】第五话·进程的切换与进程控制从今天开始,我们将要开启一个新的系列【闪耀计划】,没错!这是今年上半年的一整个系列计划!本专题目的是通过百天刷题计划,通过题目和知识点串联的方式,完成对计算机操作系统的复习和巩固;同时还配有专门的笔记总结和文档教程哦!想要搞定,搞透计算机操作系统的同学,本专栏将会通过模块化的分类,刷够1000道题,为大家提供点对点的考点相关知识轰炸!值得注意的是,本专栏将会通过教程+课后习题的方式来进行巩固教学,课后习题的题量也是算入总题数的哦!https://kikoking.blog.csdn.net/article/details/123913779【操作系统】第六话·线程是进程的(宝ᴗ宝)嘛?从今天开始,我们将要开启一个新的系列【闪耀计划】,没错!这是今年上半年的一整个系列计划!本专题目的是通过百天刷题计划,通过题目和知识点串联的方式,完成对计算机操作系统的复习和巩固;同时还配有专门的笔记总结和文档教程哦!想要搞定,搞透计算机操作系统的同学,本专栏将会通过模块化的分类,刷够1000道题,为大家提供点对点的考点相关知识轰炸!值得注意的是,本专栏将会通过教程+课后习题的方式来进行巩固教学,课后习题的题量也是算入总题数的哦!https://kikoking.blog.csdn.net/article/details/123444446

🍺知识点10:处理机调度


🍯10.1 调度的概念


🥝1.什么处理机调度?

在多道程序系统中,进程的数量往往多于处理机的个数,因此会出现多个进程争用一个处理机的情况。处理机调度是对处理机进行分配,即从就绪队列中按照一定的算法(公平、高效的原则)选择一个进程,并将处理机分配给它运行,以实现进程并发执行。


🥝2.调度有哪几种层次?

进程调度如下图所示,主要有三种层次,分别为最高级的作业调度、中级的内存调度、以及最低层的进程调度。


1、高级调度(作业调度)

概念:按一定原则从外存的后备队列中,挑选一个或多个作业,调入内存并创建进程。每个作业只调入一次,调出一次。作业调入时会建立PCB,调出时才撤销PCB。

作用:将作业从外存调度入内存,并建立相应进程,使他们获得竞争处理机的权利。

本质:将外存作业调度到内存中。


2、中级调度(内存调度)

概念:内存不够时,可将某些进程的数据调出到外存,等内存空闲或者进程需要运行时再重新调入内存,并修改其状态为就绪态,挂在就绪队列上等待。一个进程可能会被多次调出、调入内存,因此中级调度发生的频率比高级调度更高。

PS:暂时调到外存等待的进程状态为挂起状态,被挂起的进程PCB会被组织成挂起队列。

作用:提高内存利用率和系统吞吐量。

本质:外存与内存之间的调度。


3、低级调度(进程调度)

概念:按照某种算法从就绪队列中选取一个进程,将处理机分配给它。进程调度是最基本的一种调度,在各种操作系统中都必须配置低级调度;进程调度的频率很高,一般几十毫秒一次。

作用:使内存中进程上处理机运行。

本质:内存与处理机之间调度。


📜061.题目难度 ⭐️⭐️⭐️

15.作业是用户提交的,进程是由系统自动生成的,除此之外,两者的区别是( )。
A.两者执行不同的程序段
B.前者以用户任务为单位,后者以操作系统控制为单位
C.前者是批处理的,后者是分时的
D.后者是可并发执行,前者则不同

🍊详细题解:

作业:是从用户角度出发的,它由用户提交,以用户任务为单位。

进程:是从操作系统出发的,由系统生成,是操作系统的资源分配和独立运行的基本单位。举个例子来说,我可以提交一个作业——“导航到CSDN总部”;为该作业创建的进程有:用于卫星定位的进程、百度地图的进程等···

✅正确答案:B


🥝3.进程的七状态模型

相比五状态模型,七状态模型多出了:就绪挂起、阻塞挂起这两个状态,值得注意的是,这两种状态都位于外存之中,而五状态模型都是位于内存中的。

kiko:通过上述对调度层次的讲解,可能有人想问这三个调度之间的关系到底是如何的呢?我们可以通过下面这个图来帮助理解:

  • 作业调度:作业调度从外存的后备队列中调入一批作业进入内存,并为它们建立进程。
  • 进程调度:这些进程会被送入就绪队列,进程调度此时就会从就绪队列中挑出一个进程,将其状态转换为运行态,把CPU分配给它。
  • 中级调度:当内存不太够用,或一些进程长时间空闲,系统就会将这些暂时不能运行起来的进程挂起;当内存空间宽松时,或进程满足运行条件时,系统通过中级调度将相应进程唤醒。

因此,通过上面这三种调度的关系串联,我们可以得到一些结论:

  1. 作业调度为进程活动做准备,进程调度使得进程正常运行起来,中级调度将暂时不能运行的一些进程挂起。
  2. 作业调度的次数最少,进程调度的次数最多。
  3. 进程调度是最基本的,是不可缺少的,因为它决定了进程能否正常运行!

kiko:最后再强调一点,本章的讲解将着重于进程调度,大家不要错过重点哦!

🍯10.2 进程调度的时机与方式


🥝1.发生进程调度的两种情况

(1)当前运行的进程主动放弃处理机的原因可能有:

  1. 进程正常终止
  2. 运行过程中发生异常而终止
  3. 进程主动请求阻塞(如等待I/O)

(2)当前运行的进程被动放弃处理机的原因可能有:

  1. 分给进程的时间片用完
  2. 有更紧急的事需要处理(如I/O中断)
  3. 有更优先级的进程进入就绪队列

📜061.题目难度 ⭐️⭐️⭐️

05.进程(线程)调度的时机有( )。
I.运行的进程(线程)运行完毕             II.运行的进程(线程)所需资源未准备好
III.运行的进程(线程)的时间片用完       IV.运行的进程(线程)自我阻塞
V.运行的进程(线程)出现错误

A.II、III、IV和V          B.I和III         C.II、IV和V        D.全部都是

🍊详细题解:

进程发生调度的时机主要有两类情况:

(1)进程主动放弃处理机:对于本题来说,以上I、II、IV、V选项都属于进程主动放弃处理机。

(2)进程被动放弃处理机:在CPU方式是可抢占方式时,就绪对列中的某个进程(线程)的优先级高于当前运行进程(线程)的优先级时,也会发生进程(线程)调度;当进程的时机片用完时也会被迫放弃处理机,因此上述选项III会导致发生进程调度。

✅正确答案:D


🥝2.什么时候不发生进程调度呢?

(1)在处理中断的过程中

中断处理过程复杂,在实现上很难做到进程切换,而且中断处理是系统工作的一部分,逻辑上不属于某一进程,不应被剥夺处理机资源。

(2)进程在操作系统内核临界区中

进入临界区后,需要独占式地访问,理论上必须加锁,防止其他并行进程进入,在解锁前不应切换到其他进程,以加快临界区的释放。

注:进程在普通临界区中是可以进行调度、切换的。

(3)在原子操作过程中(原语)

原子操作不可中断,要一气呵成,在原子过程中,连中断都要屏蔽,更不应该进行进程调度与切换。

若在上述三类过程中发生了引起调度的条件,则不能马上进行调度和切换,应置系统的请求调度标志,直到上述过程结束后才进行相应的调度与切换。

【判断题】

1.进程在操作系统内核程序临界区中不能进行调度与切换。 (√)

2.进程处于临界区时不能进行处理机调度。 (×)

对于上题,我们刚刚才学过,当进程位于操作系统内核程序临界区时,是不能进行调度与切换的,因为内核程序临界区访问的临界资源如果不尽快释放的话,极有可能会影响到操作系统内核的其他管理工作。因此在访问内核程序临界区期间不能进行调度与切换。

对于第二题,我们需要知道并不是所有的临界区都不能进行进程调度。比如普通临界区访问的临界资源,它不会直接影响操作系统内核的管理工作,因此在访问普通临界区时,可以进行调度和切换。

临界资源:一个时间段内只允许一个进程使用的资源。各进程需要互斥地访问临界资源。

临界区:访问临界资源的那段代码。

🥝3.进程调度有哪些方式?

(1)非剥夺调度方式(非抢占方式)

定义:只允许进程主动放弃处理机,在运行过程中即便有更紧迫的任务到达,当前进程依然会继续使用处理机,直到该进程终止或主动要求进入阻塞态。

特点:实现简单,系统开销小但无法及时处理紧急任务,适合于早期批处理系统。

(2)剥夺调度方式(抢占方式)

定义:当一个进程正在处理机上执行时,如果有一个更重要或更紧迫的进程需要使用处理机,则立即暂停正在执行的进程,将处理机分配给更重要紧迫的那个进程。

特点:可以优先处理更紧急的进程,也可实现让各进程按时间片轮流执行的功能(通过时钟中断),适合于分时操作系统、实时操作系统。


🥝4.进程调度与进程切换的关系

通常来说,进程调度与进程切换是一个先后发生的关系,进程调度和进程切换程序都是操作系统内核程序,请求调度的事件发生后,才可能运行进程调度程序,调度了新的就绪程序后,才会进行进程间的切换。

进程切会保存原进程当前切换点的现场信息,恢复被调度进程的现场信息。现场切换时,操作系统内核将原进程的现场信息推入当前进程的内核堆栈来保存它们,并更新堆栈指针;然后从新进程的内核栈中装入新进程的现场信息,更新当前运行进程空间的指针、重设PC寄存器等相关工作,开始运行新的进程。

** ✨✨✨我是分割线✨✨✨**

🍯10.3 调度的评价指标


🥝1.CPU利用率

概念:指CPU忙碌的时间占总时间的比例。

公式:CPU利用率 = 忙碌的时间 / 总时间


🥝2.系统吞吐量

概念:单位时间内完成作业的数量。

公式:系统吞吐量 = 总共完成的作业数 / 总时间

【例题】某台计算机系统处理10道作业共花费100s,其系统吞吐量为?

计算步骤:系统吞吐量 = 总作业数/总时间 = 10/100 = 0.1道/秒

🥝3.周转时间

概念:指从作业被提交给系统开始,到作业完成为止的这段时间间隔;是作业等待、在就绪队列中排队、在处理机上运行及输入/输出操作所花费时间的总和。

公式:周转时间 = 作业完成时间 - 作业提交时间

平均周转时间:指的是多个作业周转时间的平均值。

公式:平均周转时间 = 多个作业周转时间之和 / 作业数目

带权周转时间:指的是作业周转时间与实际运行时间的比值。

06.设有4个作业同时到达,每个作业的执行时间均为2h,它们在一台处理器上按单道式运
行,则平均周转时间为( )。
A. 1h
B. 5h
C. 2.5h
D. 8h

🍊详细题解:

✅正确答案:B


🥝4.等待时间(衡量标准)

概念:指进程处于等处理机的时间之和,等待时间越长,用户满意度越低。

公式:对处理对象不同,其计算过程也不同:

  • 对于进程来说,等待时间就是指进程建立后等待被服务的时间之和,在等待I/O完成的期间其实进程也是在被服务的,所以不计入等待时间。
  • 对于作业来说,不仅要考虑建立进程后的等待时间,还要加上作业在外存后备队列中等待的时间。

Q1:为什么说衡量一个调度算法的优劣取决于等待时间?

A1:这是因为处理机调度算法不影响作业执行的总时间,只影响作业在就绪队列中等待所花的时间,因此衡量一调度算法的优劣,常常只需要简单地考察等待时间。


🥝5.响应时间(衡量标准)

概念:指的是从用户提交请求,到首次产生响应所用时间。

公式:响应比=(等待时机+要求服务时间)/(要求服务时间)

Q1:为什么说响应时间也是一个衡量标准?

A1:这是因为在交互式系统中,周转时间并不是最好的评价准则,一般采用响应时间作为衡量调度算法的重要准则之一。从用户角度来看,调度策略应尽量降低响应时间,使响应时间处于用户可接受范围内。

12.一个作业8:00到达系统,估计运行时间为1h。若10:00开始执行该作业,其响应比是( )。
A. 2
B. 1
C. 3
D. 0.5

🍊详细题解:

✅正确答案:C


本文转载自: https://blog.csdn.net/qq_54151955/article/details/125341048
版权归原作者 kikokingzz 所有, 如有侵权,请联系我们删除。

“【操作系统】第七话 · 处理机调度”的评论:

还没有评论