第二章:处理机管理:第二节——处理机调度

    🌈个人主页:小新_-

🎈个人座右铭:“成功者不是从不失败的人,而是从不放弃的人!”🎈

🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝

🏆所属专栏:操作系统   欢迎订阅,持续更新中~~~

                      

                               ✨让小新带着你快乐的学习吧~✨

目录

一、调度的概念与层次

(一)基本概念

(二)三个层次

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

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

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

(三)三层调度的对比与联系

(四)补充

进程的“挂起态”和七状态模型

二、进程调度的时机、切换与过程、方式

(一)时机

1、什么时候需要进程调度

2、什么时候不能进行进程调度

(二)切换与过程

1、“狭义的调度”与“切换”的区别

2、进程切换的过程需要做什么

(三)方式

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

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

三、调度器和闲逛进程

1、调度器/调度进程

2、闲逛进程

四、调度算法的评价指标

(一)CPU利用率

(二)系统吞吐量

(三)周转时间

(四)等待时间

(五)响应时间

六、调度算法

(一)先来先服务(FCFS)

(二)短作业优先(SJF)

(三)高响应比优先算法(HRRN)

(四)时间片轮转算法(RR)

(五)优先级调度算法

(六)多级反馈队列调度算法

(七)多级队列调度算法


一、调度的概念与层次

(一)基本概念

(二)三个层次

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

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

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

(三)三层调度的对比与联系

(四)补充

进程的“挂起态”和七状态模型

【总结】

二、进程调度的时机、切换与过程、方式

(一)时机

1、什么时候需要进程调度

进程调度(低级调度),就是按照某种算法从就绪队列中选择一个进程为其分配处理机。

2、什么时候不能进行进程调度

为什么呢?首先我们得了解俩个概念。

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

临界区:访问临界资源的那段代码。
内核程序临界区一般是用来访问某种内核数据结构的,比如进程的就绪队列(由各就绪进程的PCB组成)

(二)切换与过程

1、“狭义的调度”与“切换”的区别

“狭义的进程调度”与“进程切换”的区别:

狭义的进程调度指的是从就绪队列中选中一个要运行的进程。(这个进程可以是刚刚被暂停执行的进程,也可能是另一个进程,后一种情况就需要进程切换)

进程切换是指一个进程让出处理机,由另一个进程占用处理机的过程。


广义的进程调度包含了选择一个进程进程切换两个步骤。

2、进程切换的过程需要做什么

进程切换的过程主要完成了:

  1. 对原来运行进程各种数据的保存
  2. 对新的进程各种数据的恢复

(如:程序计数器、程序状态字、各种数据寄存器等处理机现场信息,这些信息一般保存在进程控制块)
注意:进程切换是有代价的,因此如果过于频繁的进行进程调度、切换,必然会使整个系统的效率降低,使系统大部分时间都花在了进程切换上,而真正用于执行进程的时间减少。

(三)方式

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

非剥夺调度方式,又称非抢占方式。即,只允许进程主动放弃处理机。在运行过程中即便有更紧迫的任务到达,当前进程依然会继续使用处理机,直到该进程终止或主动要求进入阻塞态。

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

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

剥夺调度方式,又称抢占方式。当一个进程正在处理机上执行时,如果有一个更重要或更紧迫的进程需要使用处理机,则立即暂停正在执行的进程,将处理机分配给更重要紧迫的那个进程。

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

【总结】

三、调度器和闲逛进程

1、调度器/调度进程

②、③由调度程序引起,调度程序决定:


让谁运行?--调度算法
运行多长时间?--时间片大小


调度时机--——什么事件会触发“调度程序”?

  • 创建新进程
  • 进程退出
  • 运行进程阻塞
  • I/0中断发生(可能唤醒某些阻塞进程)。
  • 非抢占式调度策略,只有运行进程阻塞或退出才触发调度程序工作
  • 抢占式调度策略,每个时钟中断或k个时钟中断会触发调度程序工作

2、闲逛进程

调度程序永远的备胎,没有其他就绪进程时,运行闲逛进程(idle)

闲逛进程的特性:

  • 优先级最低。
  • 可以是0地址指令,占一个完整的指令周期(指令周期末尾例行检查中断)
  • 能耗低

四、调度算法的评价指标

(一)CPU利用率

由于早期的CPU造价极其昂贵,因此人们会希望让CPU尽可能多地工作
CPU利用率:指CPU“忙碌”的时间占总时间的比例。

Eg:某计算机只支持单道程序,某个作业刚开始需要在CPU上运行5秒,再用打印机打印输出5秒,之后再执行5秒,才能结束。在此过程中,CPU利用率、打印机利用率分别是多少?

(二)系统吞吐量

(三)周转时间

对于计算机的用户来说,他很关心自己的作业从提交到完成花了多少时间。

周转时间,是指从作业被提交给系统开始,到作业完成为止的这段时间间隔。

它包括四个部分:作业在外存后备队列上等待作业调度(高级调度)的时间、进程在就绪队列上等待进程调度(低级调度)的时间、进程在CPU上执行的时间、进程等待I/0操作完成的时间。后三项在一个作业的整个处理过程中,可能发生多次。

(四)等待时间

计算机的用户希望自己的作业尽可能少的等待处理机

等待时间,指进程/作业处于等待处理机状态时间之和,等待时间越长,用户满意度越低。

对于进程来说,等待时间就是指进程建立后等待被服务的时间之和,在等待1/0完成的期间其实进程也是在被服务的,所以不计入等待时间。

对于作业来说,不仅要考虑建立进程后的等待时间,还要加上作业在外存后备队列中等待的时间
一个作业总共需要被CPU服务多久,被I/O设备服务多久一般是确定不变的,因此调度算法其实只会影响作业/进程的等待时间。当然,与前面指标类似,也有“平均等待时间”来评价整体性能。

(五)响应时间

对于计算机用户来说,会希望自己的提交的请求(比如通过键盘输入了一个调试命令)尽早地开始被系统服务、回应。

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

【总结】

六、调度算法

Tips:

1、算法思想

2、算法规则

3、这种调度算法是用于作业调度还是进程调度?

4、抢占式?非抢占式?

5、是否会导致饥饿?(某进程/作业长期得不到服务)

(一)先来先服务(FCFS)

(二)短作业优先(SJF)

注意几个小细节:
1.如果题目中未特别说明,所提到的“短作业/进程优先算法”默认是非抢占式的
2.很多书上都会说“SIF 调度算法的平均等待时间、平均周转时间最少”严格来说,这个表述是错误的,不严谨的。之前的例子表明,最短剩余时间优先算法得到的平均等待时间、平均周转时间还要更少应该加上一个条件“在所有进程同时可运行时,采用SIF调度算法的平均等待时间、平均周转时间最小”。
或者说“在所有进程都几乎同时到达时,采用SJF调度算法的平均等待时间、平均周转时间最少”
如果不加上述前提条件,则应该说“抢占式的短作业/进程优先调度算法(最短剩余时间优先,SRNT算法)的平均等待时间、平均周转时间最少”
3.虽然严格来说,SJF的平均等待时间、平均周转时间并不一定最少,但相比于其他算法(如FCFS),SJF依然可以获得较少的平均等待时间、平均周转时间
如果选择题中遇到“SIF 算法的平均等待时间、平均周转时间最少”的选项,那最好判断其他选项4是不是有很明显的错误,如果没有更合适的选项,那也应该选择该选项

(三)高响应比优先算法(HRRN)

【总结】

(四)时间片轮转算法(RR)

(五)优先级调度算法

(六)多级反馈队列调度算法

【总结】

(七)多级队列调度算法

 最后,感谢大家的观看!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值