操作系统第三章 处理机调度与死锁 知识点总结(1)

重点与难点
重点
掌握进程调度算法,分别适用于何种情况
理解常用的几种实时调度算法
理解产生死锁的原因
掌握银行家算法避免死锁
难点
多道程序设计中的各种调度算法
银行家算法
知识点
处理机调度及调度算法
产生死锁的原因和必要条件
预防死锁的方法,死锁的检测与解除
银行家算法

处理机调度的层次
高级调度(High Scheduling)
低级调度(Low Level Scheduling)
中级调度(Intermediate-Level Scheduling)
高级调度
高级调度()High Scheduling)又称作作业调度或者长程调度(Long-Term Scheduling)
主要任务是按一定的原则对外存上处于后备状态的作业进行选择,给选中的作业分配内存、输入/输出设备等必要的资源,并建立相应的进程,放入就绪队列,以使该作业的进程获得竞争处理机的权利
也称为接纳调度(Admission Scheduling)
高级调度的时间尺度通常是分钟、小时或天
在批处理系统中,因为作业进入系统后先驻留在外存,所以需要有作业调度,在分时系统中为了做到及时响应,作业被直接送入内存,所以不需作业调度,在实时系统中,通常也不需要作业调度
作业相关概念
作业(Job):不仅包含了通常的程序和数据,而且还应配有一份作业说明书,系统根据该说明书来对程序的运行进行控制。在批处理系统中,是以作业为基本单位从外存调入内存的。
作业流:若干个作业进入系统之后,被一次存放在外存上,这样就形成了输入的作业流,在操作系统的控制之下,逐个作业进行处理,于是便形成了处理作业流
作业步(Job Step)在作业运行的器件,每个作业都必须经过若干个相对独立,又相互关联的顺序加工步骤才能够得到结果,我们把其中的每一个加工步骤乘坐一个作业步,各个作业步之间存在着相互联系,往往是把上一个作业的输出作为下一个作业步的输入
作业控制块JCB(Job Control Block)
为了管理和调度作业,在多道批处理系统中为每个作业设置了一个作业控制块,它是作业在系统中存在的标志,其中保存了系统对作业进行管理和调度所需的全部信息。
在JCB中通常应包含的内容有:作业标识、用户名称、用户帐户、作业类型、作业状态、调度信息、资源需求、进入系统时间、开始处理时间、作业完成时间、作业退出时间、资源使用情况等。
当作业进入系统的时候,系统便为每一个作业建立一个JCB,插入相应的后备队列,作业调度程序依据一定的调度算法来调度他们,然后装入内存,运行的时候,系统就按照JCB中的信息对作业进行控制。结束的时候,系统负责回收分配给他的资源,撤销他的作业控制块
当作业进入系统的时候,系统便为每个作业建立一个JCB,插入相应的后备队列,作业调度程序依据一定的调度算法来调度他们,然后装入内存,运行的时候,系统就按照JCB中的信息来对作业进行控制,结束的时候,系统负责回收分配给他的资源,撤销他们的作业控制块
高级调度
多道程序度:即允许多少个作业同时在内存中运行。
周转时间:从作业被提交给系统开始,到作业完成为止的这段时间间隔。
吞吐量:是指在单位时间内系统所完成的作业数。
在每次执行作业调度时,须做出以下两个决定:
接纳多少个作业:即允许多少个作业同时在内存中运行,取决于多道程序度
作业太多,服务质量下降
作业太少,资源利用率低
接纳哪些作业
取决于作业调度算法:先来先服务、短作业优先、作业优先权调度、响应比调度
低级调度
低级调度也称进程调度或短程调度(Short-Term Scheduling)
主要任务是按照某种策略和方法选取一个处于就绪状态的进程,将处理机分配给它
低级调度的时间尺度通常是毫秒级的。由于低级调度算法的频繁使用,要求在实现时做到高效
无论是批处理系统,还是分时系统或实时系统,都必须配置低级调度。
低级调度也称作进程调度或者短程调度
低级调度的主要功能如下:
保存处理机的现场信息
按某种算法选取进程
把处理器分配给进程

保存处理机的现场信息,按照某种算法选取进程,把处理器分配给进程

进程调度中的三个基本机制
排队器:为了提高进程调度的效率,应事先将系统中所有的就绪进程按照一定的方式排成一个或多个队列,以便调度程序能最快地找到它。
分派器(分派程序):分派器把由进程调度程序所选定的进程,从就绪队列中取出,然后进行上下文切换,将处理机分配给它。
上下文切换机制:当对处理机进行切换时,会发生两对上下文切换操作。

抢占(先)方式
调度程序根据某种原则强制性暂停正在执行的进程,把CPU分配给另一进程运行。
优点:适于时间要求严格的实时系统
缺点:调度算法复杂,系统开销大
抢占原则:
(1)优先权原则
(2)短作业(进程)优先原则
(3)时间片原则。(适于分时系统)

非抢占(非抢先、非剥夺)方式
进程获得CPU后,一直执行到完成或因等待某事 件而阻塞,才让出CPU。如:
(1)进程完成
(2)等待I/O 、执行了wait、block原语等
缺点:①平均周转时间长 ②紧急任务不能及时投入,通常用于批处理进程。
优点:算法简单,系统开销小

进程调度的方式
非抢占方式(Nonpreemptive Mode)
抢占方式(Preemptive Mode)

引起进程调度的原因
正在执行的进程执行完毕或因发生某事件而不能再继续执行;
执行中的进程因提出I/O请求而暂停执行;
在进程通信或同步过程中执行了某种原语操作如P操作、阻塞、挂起阿原语等;
在抢占式调度中,有比当前进程优先权更高的进程进入就绪队列;
在时间片轮转法中,时间片完。

中级调度
中级调度(Intermediate-Level Scheduling)又称中程调度(Medium-Term Scheduling)
引入目的是为了提高内存利用率和系统吞吐量。使那些暂时不能运行的进程不再占用宝贵的内存资源,而将它们调至外存上去等待
主要任务是按照给定的原则和策略,将处于外存对换区中的重又具备运行条件的就绪进程调入内存,或将处于内存就绪状态或内存阻塞状态的进程交换到外存对换区
中级调度实际上就是存储器管理中的对换功能
操作系统第三章 处理机调度与死锁 知识点总结(1)_第1张图片
TV
3.2 调度队列模型和调度准则
调度队列模型和调度准则
调度队列模型
选择调度方式和调度算法的若干准则

调度队列模型
仅有进程调度的调度队列模型
具有高级和低级调度的调度队列模型
同时具有三级调度的调度队列模型

仅有进程调度的调度队列模型
在分时系统中,通常仅设有进程调度
系统把这些进程组织成一个就绪队列
每个进程在执行时,可能有以下几种情况
进程获得CPU正在执行
任务在给定时间片内已完成,释放处理机后为完成状态
任务在时间片内未完成,进入就绪队列末尾
在执行期间因某事件而阻塞

操作系统第三章 处理机调度与死锁 知识点总结(1)_第2张图片
具有高级和低级调度的调度队列模型
在批处理系统中,不仅需要进程调度,而且还要有作业调度。该模型与上一模型的主要区别在于如下两个方面:
就绪队列的形式
在批处理系统中,最常用的调度算法是最高优先权优先调度,相应地常用就绪队列是优先权队列。进程进入就绪队列时,按优先权高低插入相应位置,调度程序总是把处理机分配给就绪队首进程
设置多个阻塞队列
根据事件的不同设置多个阻塞队列,每个队列对应于某一种进程阻塞事件,以提高操作效率

具有高级和低级调度的调度队列模型
与上一模型的主要区别:就绪队列的形式;
设置多个阻塞队列
操作系统第三章 处理机调度与死锁 知识点总结(1)_第3张图片
同时具有三级调度的调度队列模型操作系统第三章 处理机调度与死锁 知识点总结(1)_第4张图片选择调度方式和调度算法的若干准则
如果你是用户,你希望系统如何为你服务,如何考虑?
如果你是调度者,从系统整体角度出发,应如何考虑?
从不同的角度来判断处理机调度算法的性能:
用户的角度
处理机的角度
算法实现的角度
实际的处理机调度算法选择是一个综合的判断结果。

选择调度方式和调度算法的若干准则
面向用户的准则
周转时间短
响应时间快
截止时间的保证
优先权准则
面向系统的准则
系统吞吐量高
处理机利用率高
各类资源的平衡利用

面向用户的准则
周转时间短
所谓周转时间是指从作业被提交给系统开始,到作业完成为止的这段时间间隔

平均周转时间:
操作系统第三章 处理机调度与死锁 知识点总结(1)_第5张图片
带权周转时间:进程(或作业)的周转时间T与系统为它提供服务的时间TS之比,即W=T/TS 。而平均带权周转时间则可表示为:

操作系统第三章 处理机调度与死锁 知识点总结(1)_第6张图片

是评价批处理系统性能的指标操作系统第三章 处理机调度与死锁 知识点总结(1)_第7张图片
面向用户的准则
响应时间快
响应时间是指从用户通过键盘提交一个请求开始,直至系统中首次产生响应为止的时间
是评价分时系统性能的指标
截止时间保证
截止时间是指某任务必须开始执行的最迟时间或必须完成的最迟时间
是评价实时系统性能的重要指标
优先权准则
在批处理、实时和分时系统中都可以选择优先权准则,以便让紧急任务先处理
有时还选择抢占式调度方式

分时系统的重要性能指标:响应时间快
截止时间保证:实时系统
面向用户的准则操作系统第三章 处理机调度与死锁 知识点总结(1)_第8张图片面向系统的准则
系统吞吐量高
吞吐量指单位时间内系统所完成的作业数
作业调度的方式和算法对吞吐量的大小有较大影响
处理机利用率高
各类资源的平衡利用
使内存、外存和I/O设备的利用率高
3.3 调度算法
调度算法
在OS中调度的实质是一种资源分配,因而调度算法是指根据系统的资源分配策略所规定的资源分配算法。
CPU的调度依赖于进程的如下属性:进程执行由CPU执行和I/O等待周期组成,进程在这两个状态之间切换。
有的进程花费绝大多数时间在计算上,而有些进程则在等待I/O上花费了绝大多数时间。前者称为计算密集型(或CPU繁忙型),后者称为I/O密集型(或I/O繁忙型)
如何制定分配策略?
显然不同性质的进程,调度所要达到的目的也有所不同。对不同的系统和系统目标,通常采用不同的算法,有些算法适用于作业调度,有些适用于进程调度,有些两者皆可
调度算法
先来先服务调度算法
短作业(进程)优先调度算法
高优先权优先调度算法
时间片轮转调度算法
多级反馈队列调度算法

先来先服务调度算法
first-come, first-served(FCFS)
FCFS策略可以用FIFO队列实现
按到达就绪队列先后顺序进行调度
是一种最简单的调度算法,即可用于作业调度,也可用于进程调度
当前进程占用CPU,直到执行完或阻塞,才出让CPU(意味着是非抢占方式)
几个术语
到达时间、服务时间、开始时间、完成时间、等待时间
周转时间:完成时间-到达时间
带权周转时间:周转时间/服务时间

按照到达就绪队列的先后顺序进行调度,是一种最简单的调度算法,即可用于作业的调度,也可用于进程的调度
先来先服务调度算法示例
操作系统第三章 处理机调度与死锁 知识点总结(1)_第9张图片先来先服务调度算法优缺点

比较有利于长作业(进程),而不利于短作业(进程)
有利于CPU繁忙型作业(进程) ,而不利于I/O繁忙型作业(进程)
用于批处理系统,不适于分时系统
例:有两个程序:A需要运行100秒,B需要运行1秒。A排在B前面。通过计算可知平均周转时间非常长

短作业(进程)优先调度算法
SJ§F:Shortest Job(Process) First
对预计执行时间短的作业(进程)优先调度
对FCFS算法的改进,其目标是减少平均周转时间。
可以分别用于作业调度和进程调度
短作业优先(SJF)的调度算法,是从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存运行;
而短进程优先(SPF)调度算法,则是从就绪队列中选出一估计运行时间最短的进程,将处理机分配给它,使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机时,再重新调度

短作业(进程)优先调度算法
操作系统第三章 处理机调度与死锁 知识点总结(1)_第10张图片先来先服务和短进程优先调度算法比较
SPF平均周转时间和平均带权周转时间明显改善
FCFS/SPF调度算法的性能
SPF能有效地降低作业的平均等待时间,提高系统吞吐量
操作系统第三章 处理机调度与死锁 知识点总结(1)_第11张图片
短作业(进程)优先调度算法优缺点
优点:
有效降低进程的平均等待时间,提高系统吞吐量
缺点:
对长作业(进程)不利。由于调度程序总是优先调度那些(即使是后进来的)短作业(进程),将导致长作业(进程)长期不被调度——饥饿
完全未考虑作业(进程)的紧迫程度,因而不能保证紧迫性作业(进程)会被及时处理
难以准确估计作业(进程)的执行时间,不一定能真正做到短作业(进程)优先调度,从而影响调度性能。
缺点:对于长作业进程不利,由于调度程序总是优先调度那些短作业进程,将导致长作业进程长期不被调度-
高优先权优先调度算法
Highest Priority First, HPF
优先权调度算法的类型
非抢占式优先权调度算法
抢占式优先权调度算法
优先权调度算法的类型
非抢占式优先权调度算法
特点:系统一旦把处理机分配给就绪队列中优先权最高的进程后,该进程便一直执行下去,直至完成,或因发生某事件使该进程放弃处理机时,系统才将处理机重新分配给另一优先权最高的进程
主要用于批处理系统中,也可用于某些对实时性要求不严的实时系统中

抢占式优先权调度算法
把处理机分配给优先权最高的进程,但在执行期间,只要出现另一个优先权更高的进程,则进程调度程序就立即停止当前进程的执行,并将处理机分配给新到的优先权最高的进程
注意:只要系统中出现一个新的就绪进程,就进行优先权比较
该调度算法,能更好地满足紧迫作业的要求,故而常用于要求比较严格的实时系统中,以及对性能要求较高的批处理和分时系统中
优先权的类型
静态优先权
动态优先权
静态优先权
在创建进程时确定,且在进程的整个运行期间保持不变。一般地,优先权是利用某一范围内的一个整数来表示的,例如,0255, 又把该整数称为优先数
确定进程优先权的依据有如下三个方面:
进程类型:系统进程的优先权高于一般用户进程。
进程对资源的需求:如进程的估计执行时间及内存需要量少的进程,应赋予较高的优先权。
用户要求:由用户进程的紧迫程度和用户所付费用的多少来确定优先权。
静态优先权特点
系统开销小、不够精确、一般用在要求不高的系统中

动态优先权
随进程的推进或随其等待时间的增加而改变,以获得更好的调度性能
可规定,在就绪队列中的进程,随其等待时间的增长,其优先权以速率a提高
具有相同优先权初值的进程,则最先进入就绪队列,因其动态优先权变得最高而优先获得处理机,此即FCFS算法
具有各不相同的优先权初值的就绪进程,则优先权初值低的进程,在等待了足够的时间后,其优先权便可能升为最高,从而可以获得处理机
当采用抢占式优先权调度算法时,如果再规定当前进程的优先权以速率b下降,则可防止一个长进程长期地垄断处理机
高优先权优先调度算法示例
静态优先权,非抢占式(1为高优先权)
操作系统第三章 处理机调度与死锁 知识点总结(1)_第12张图片高优先权优先调度算法
高响应比优先调度算法(HRRN:Highest Response Ratio Next)
基本思想:短进程优先调度算法 + 动态优先权机制,既考虑进程的执行时间也考虑进程的等待时间,综合了FCFS和SPF两种算法的特点
在进程中引入动态优先权,则长进程在等待一定时间后,有机会分到CPU。其优先权的变化可描述为:
操作系统第三章 处理机调度与死锁 知识点总结(1)_第13张图片

因等待时间+服务时间=该进程的响应时间,故该优先权又相当于响应比RP。据此,又可表示为
操作系统第三章 处理机调度与死锁 知识点总结(1)_第14张图片
调度策略:响应比最高的进程优先启动
高优先权优先调度算法
对HRF的小结
等待时间相同的进程,则要求服务的时间愈短,其优先权愈高——对短进程有利
要求服务的时间相同的进程,则等待时间愈长,其优先权愈高——是先来先服务
对长进程,优先权随等待时间的增加而提高,其等待时间足够长时,其优先权便可升到很高, 从而也可获得处理
是FCFS和SPF的折衷,既照顾了短进程,又考虑了进程到达的先后次序,又不会使长进程长期得不到服务——对长进程有利
缺点:要进行响应比计算,增加了系统开销
高响应比优先调度算法示例
操作系统第三章 处理机调度与死锁 知识点总结(1)_第15张图片
操作系统第三章 处理机调度与死锁 知识点总结(1)_第16张图片操作系统第三章 处理机调度与死锁 知识点总结(1)_第17张图片操作系统第三章 处理机调度与死锁 知识点总结(1)_第18张图片基于时间片的轮转调度算法
注意:
如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。
如果进程在时间片结束前阻塞或结束,则CPU立即进行切换
简单的时间片轮转法(RR—Round Robin)
系统将所有的就绪进程按先来先服务的原则排成一个队列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片
当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序便停止该进程的执行,并将其放就绪队列尾;然后,再把处理机分配给就绪队列中新的队首
时间片的大小从几ms到几百ms
优点:公平。保证就绪队列中所有进程在一给定的时间内,均能获得一时间片的处理机执行时间
缺点:紧迫任务响应慢。
若到达时间为0、1、2、3、4,又如何?
基于时间片的轮转调度算法示例
操作系统第三章 处理机调度与死锁 知识点总结(1)_第19张图片操作系统第三章 处理机调度与死锁 知识点总结(1)_第20张图片操作系统第三章 处理机调度与死锁 知识点总结(1)_第21张图片
操作系统第三章 处理机调度与死锁 知识点总结(1)_第22张图片
时间片大小的确定
时间片大小对系统性能有很大的影响
过长 -> 退化为FCFS算法,进程在一个时间片内都执行完,无法满足交互式用户的需求。
过短 -> 用户的一次请求需要多个时间片才能处理完,上下文切换次数增加,加重了系统的开销。
一个较为可取的大小是,时间片略大于一次典型的交互所需要的时间,使大多数进程在一个时间片内完成

多级反馈队列调度算法
Round Robin with Multiple Feedback
设置多个就绪队列,并为各个队列赋予不同的优先级
第一个队列的优先级最高,第二个队列次之,其余各队列的优先权逐个降低
该算法赋予各个队列中进程执行时间片的大小也各不相同,在优先权愈高的队列中,为每个进程所规定的执行时间片就愈小。例如,第二个队列的时间片要比第一个队列的时间片长一倍,……,第i+1个队列的时间片要比第i个队列的时间片长一倍

多级反馈队列调度方式操作系统第三章 处理机调度与死锁 知识点总结(1)_第23张图片
操作系统第三章 处理机调度与死锁 知识点总结(1)_第24张图片
多级反馈队列调度说明
仅当第一队列空闲时,调度程序才调度第二队列中的进程运行;仅当第1~(i-1) 队列均空时,才会调度第i队列中的进程运行
第i队列中某进程正在运行时,又有新进程进入优先权较高的队列(第1~(i-1)中的任何一个队列),则此时新进程将抢占正在运行进程的处理机,调度程序把正在运行的进程放回到第i队列的末尾
第i队列中某进程正在运行时,该进程因等待事件发生而进入阻塞队列,等待事件发生后,调度程序把进程放回到第i队列的末尾

多级反馈队列调度算法的性能
能满足各种类型用户的需要
终端型作业用户 用户感到满意
终端型作业用户所提交的作业多属于交互型作业,通常较小,系统只要能使这些作业在第一队列所规定的时间片内完成即可
短批处理作业用户 周转时间较短
若在第1队列中执行一个时间片即可完成,便可获得与终端型作业一样的响应时间
如在第一个队列中不能完成,只需在第2、3队列中各执行一个时间片
长批处理作业用户 不必担心起作业长期得不到处理
长作业将依次在第1,2,3…,n队列中执行,最终按轮转方式运行
实时调度
实现实时调度的基本条件
实时调度算法的分类
常用的几种实时调度算法
实时系统中存在着若干个实时进程或任务,它们用来反应或控制某个外部事件,往往带有某种程度的紧迫性,因而对实时系统中的调度也提出了某些特殊要求。

实现实时调度的基本条件
实时调度必须满足实时任务对截止时间的要求,因此,实现实时调度应具备下述几个条件:
提供必要的信息
系统处理能力强
采用抢占式调度机制
具有快速切换机制
实现实时调度的基本条件
提供必要的信息
就绪时间:任务成为就绪状态的起始时间
开始截止时间和完成截止时间
处理时间:指一个任务从开始执行直至完成所需的时间
资源要求:任务执行时所需的一组资源
优先级:可以设为绝对优先级或相对优先级
操作系统第三章 处理机调度与死锁 知识点总结(1)_第25张图片操作系统第三章 处理机调度与死锁 知识点总结(1)_第26张图片
系统处理能力强
在实时系统中,通常都有着多个实时任务。
若处理机的处理能力不够强,则有可能因处理机忙不过来而使某些实时任务不能得到及时处理, 从而导致发生难以预料的后果。
例:一个周期为10ms,执行5ms,
一个周期为15ms, 执行10ms,
则: (5/10)+(10/15)=35/30
系统处理能力强
若上式不能满足,则系统是不可调度的
解决的方法是提高系统的处理能力
采用单处理机系统,但须增强其处理能力, 以显著地减少对每一个任务的处理时间
采用多处理机系统,假定系统中的处理机数为N,则应将上述的限制条件改为
操作系统第三章 处理机调度与死锁 知识点总结(1)_第27张图片
采用抢占式调度机制
当一个优先权更高的任务到达时,允许将当前任务暂时挂起,而令高优先权任务立即投入运行,以满足该硬实时任务对截止时间的要求。但这种调度机制比较复杂
小的实时系统,若能预知任务的开始截止时间,则可采用非抢占调度机制,以简化调度程序对任务调度时所花费的系统开销
注意:在设计这种调度机制时,应使所有的实时任务都比较小,并在执行完关键性程序和临界区后,能及时地将自己阻塞起来,以便释放处理机,供调度程序调度那些开始截止时间即将到达的任务

具有快速切换机制
该机制应具有如下两方面的能力:
对外部中断的快速响应能力
为使在紧迫的外部事件请求中断时系统能及时响应,要求系统具有快速硬件中断机构,还应使禁止中断的时间间隔尽量短,以免耽误时机(其它紧迫任务)
快速的任务分派能力
在完成任务调度后,便应进行任务切换。为了提高分派程序进行任务切换时的速度, 应使系统中的每个运行功能单位适当的小,以减少任务切换的时间开销

实时调度分类
按实时任务性质分
硬实时与软实时
按调度方式分
非抢占式与抢占式
按调度时间分
静态调度:进程执行前已经决定各进程执行顺序
动态调度:根据当前运行情况选择可投入运行的进程
多处理机环境下
集中式与分布式

硬实时与软实时
非抢占式与抢占式
按照调度时间分类:
静态调度:进程执行前已经决定各个进程的执行顺序
动态调度:根据当前运行的情况选择可以投入运行的进程

实时调度算法的分类
按调度方式分
非抢占式调度算法
优点:算法思想简单,易于实现
常用于小型实时系统或实时要求不严格的实时控制系统中
可分为:
非抢占式轮转调度算法
非抢占式优先调度算法
抢占式调度算法
根据抢占发生时间的不同而进一步分成如下:
基于时钟中断的抢占式优先权调度算法
立即抢占的优先权调度算法

非抢占式轮转调度算法
算法思想:将实时任务排成轮转队列,调度程序每次选择队列中的第一个任务运行,当该任务运行后,便排在轮转队列的末尾,等待下次调度运行,而调度程序再选择下一个队首任务运行。
常用于要求不太严格的实时控制系统
如:工业生产的群控系统
操作系统第三章 处理机调度与死锁 知识点总结(1)_第28张图片非抢占式优先调度算法
算法思想:为要求较为严格的任务赋予较高的优先级,当这些实时任务到达时,把它们安排在就绪队列的队首,等待当前任务自我终止或运行完成后被调度执行。
常用于有一定要求的实时控制系统中
为时间要求严格的任务分配较高优先级,当优先权高的实时任务到来时,排在就绪队列的队首等待调度
操作系统第三章 处理机调度与死锁 知识点总结(1)_第29张图片
操作系统第三章 处理机调度与死锁 知识点总结(1)_第30张图片
实时调度算法的分类
抢占式调度算法
基于时钟中断的抢占式优先权调度算法
某实时任务到达后,若优先级高于当前正在执行任务的优先级,并不立即抢占当前任务的处理机,而是等到时钟中断到来后调度程序才剥夺当前任务的执行
立即抢占(Immediate Preemption)的优先权调度算法
一旦出现外部中断,只要当前任务不在临界区内,便立即剥夺当前任务的执行,把处理机分配给要求中断的紧迫任务
要求操作系统具有快速响应外部事件中断的能力
实时调度算法的分类
操作系统第三章 处理机调度与死锁 知识点总结(1)_第31张图片
常用的几种实时调度算法
最早截止时间优先:EDF(Earliest Deadline First)
最低松弛度优先:LLF(Least Laxity First)
优先级倒置PIP(priority inversion problem)不讲
最早截止时间优先算法EDF
根据任务的开始截止时间来确定任务的优先级,截止时间越早优先级越高
算法要求在系统中保持一个实时任务就绪队列,该队列按各任务截止时间的早晚排序。调度程序在选择任务时,总是选择就绪队列中的第一个任务,为之分配处理机
既可用于抢占式调度,也可用于非抢占式调度方式
非抢占式调度方式用于非周期实时任务
抢占式调度方式用于周期实时任务

你可能感兴趣的:(操作系统第三章 处理机调度与死锁 知识点总结(1))