
《第3章 处理机调度与死锁(8)》由会员分享,可在线阅读,更多相关《第3章 处理机调度与死锁(8)(144页珍藏版)》请在文档大全上搜索。
1、.1.第三章第三章 处理机调度与死锁处理机调度与死锁 3.1 处理机调度的层次处理机调度的层次3.2 调度队列模型和调度准则调度队列模型和调度准则3.3 调度算法调度算法3.4 实时调度实时调度 3.5 产生死锁的原因和必要条件产生死锁的原因和必要条件3.6 预防死锁的方法预防死锁的方法3.7 死锁的检测与解除死锁的检测与解除 .2.3.1 处理机调度的层次处理机调度的层次 3.1.1 高级调度高级调度(High Level Scheduling) 高级调度又称为高级调度又称为作业调度作业调度或或长程调度长程调度(LongTerm Scheduling),其调度对象是作业。,其调度对象是作业。
2、1. 作业和作业步作业和作业步(1) 作业作业(Job) 作业是一个比程序更为广泛的概念,它不仅包含通作业是一个比程序更为广泛的概念,它不仅包含通常的程序和数据,而且还配有一份常的程序和数据,而且还配有一份作业说明书作业说明书,系统根,系统根据作业说明书来对程序的运行进行控制。据作业说明书来对程序的运行进行控制。 在批处理系统中,以作业为基本单位从外存调入内在批处理系统中,以作业为基本单位从外存调入内存的。存的。 .3.(2) 作业步作业步(Job Step) 在作业运行期间,每个作业都必须经过若干在作业运行期间,每个作业都必须经过若干个相对独立、又相互关联的顺序加工步骤才能得个相对独立、又相
3、互关联的顺序加工步骤才能得到结果,我们把其中的每一个加工步骤称为一个到结果,我们把其中的每一个加工步骤称为一个作业步作业步。 各作业步之间存在着相互联系,通常上一个各作业步之间存在着相互联系,通常上一个作业步的输出作为下一个作业步的输入。作业步的输出作为下一个作业步的输入。 3.1 处理机调度的层次处理机调度的层次 .4.一个典型的作业可分成三个作业步:一个典型的作业可分成三个作业步: “编译编译”作业步:作业步:通过执行编译程序对源程通过执行编译程序对源程序进行编译,产生若干个目标程序段;序进行编译,产生若干个目标程序段; “连结装配连结装配”作业步:作业步:将将“编译编译”作业步所作业步所
4、产生的若干个目标程序段装配成可执行的目标程产生的若干个目标程序段装配成可执行的目标程序;序; “运行运行”作业步:作业步:将可执行的目标程序读入将可执行的目标程序读入内存并控制其运行。内存并控制其运行。3.1 处理机调度的层次处理机调度的层次 .5.(3) 作业流作业流 若干个作业进入系统后,被依次存放在外存若干个作业进入系统后,被依次存放在外存上,便形成了上,便形成了输入作业流输入作业流。 在操作系统的控制下,逐个作业进行处理,在操作系统的控制下,逐个作业进行处理,于是便形成了于是便形成了处理作业流处理作业流。 3.1 处理机调度的层次处理机调度的层次 .6.2. 作业控制块作业控制块JCB
5、(Job Control Block) 为管理和调度作业,在多道批处理系统中为每个作业设置为管理和调度作业,在多道批处理系统中为每个作业设置一个作业控制块,作为作业在系统中存在的标志,其中保存了一个作业控制块,作为作业在系统中存在的标志,其中保存了系统对作业进行管理和调度所需的全部信息。系统对作业进行管理和调度所需的全部信息。JCB中的内容因系统而异,通常包含:中的内容因系统而异,通常包含: 作业标识、用户名称、用户帐户、作业类型作业标识、用户名称、用户帐户、作业类型(CPU繁忙型、繁忙型、I/O繁忙型、批量型、终端型繁忙型、批量型、终端型)、作业状态、调度信息、作业状态、调度信息(优先级、优
6、先级、已运行时间已运行时间)、资源需求、资源需求(预计运行时间、要求内存大小、要求预计运行时间、要求内存大小、要求I/O设备的类型和数量设备的类型和数量)、进入系统时间、开始处理时间、作业、进入系统时间、开始处理时间、作业完成时间、作业退出时间、资源使用情况等。完成时间、作业退出时间、资源使用情况等。 3.1 处理机调度的层次处理机调度的层次 .7.每当作业进入系统时,系统便为每个作业建立每当作业进入系统时,系统便为每个作业建立一个一个JCB,根据作业类型将它插入相应的后备队列,根据作业类型将它插入相应的后备队列中。中。 作业调度程序依据一定的调度算法来调度它们,作业调度程序依据一定的调度算法
7、来调度它们,被调度到的作业将会装入内存。在作业运行期间,被调度到的作业将会装入内存。在作业运行期间,系统就按照系统就按照JCB中的信息对作业进行控制。中的信息对作业进行控制。 当一个作业执行结束进入完成状态时,系统负当一个作业执行结束进入完成状态时,系统负责回收分配给它的资源,撤消它的作业控制块。责回收分配给它的资源,撤消它的作业控制块。 3.1 处理机调度的层次处理机调度的层次 .8.3作业调度作业调度作业调度的主要功能是根据作业控制块中的信息,作业调度的主要功能是根据作业控制块中的信息,审查系统能否满足用户作业的资源需求,以及按照一审查系统能否满足用户作业的资源需求,以及按照一定的算法,从
8、外存的后备队列中选取某些作业调入内定的算法,从外存的后备队列中选取某些作业调入内存,并为它们创建进程、分配必要的资源。然后再将存,并为它们创建进程、分配必要的资源。然后再将新创建的进程插入就绪队列,准备执行。新创建的进程插入就绪队列,准备执行。 因此,有时作业调度也称为因此,有时作业调度也称为接纳调度接纳调度(Admission Scheduling)。 3.1 处理机调度的层次处理机调度的层次 .9.对用户而言,总希望自己作业的周转时间尽可能对用户而言,总希望自己作业的周转时间尽可能的短,最好周转时间就等于作业的执行时间。的短,最好周转时间就等于作业的执行时间。 对系统来说,则希望作业的平均
9、周转时间尽可能对系统来说,则希望作业的平均周转时间尽可能少,有利于提高少,有利于提高CPU 的利用率和系统的吞吐量。的利用率和系统的吞吐量。 为此,每个系统在选择作业调度算法时,既应考为此,每个系统在选择作业调度算法时,既应考虑用户的要求,又能确保系统具有较高的效率。虑用户的要求,又能确保系统具有较高的效率。3.1 处理机调度的层次处理机调度的层次 .10.系统每次执行作业调度时,必须做出两个决定系统每次执行作业调度时,必须做出两个决定:1) 决定接纳多少个作业决定接纳多少个作业作业调度每次要接纳多少个作业进入内存,取决于作业调度每次要接纳多少个作业进入内存,取决于多道程序度多道程序度( De
10、gree of Multiprogramming ),即允许多即允许多少个作业同时在内存中运行少个作业同时在内存中运行。当内存中同时运行的作业。当内存中同时运行的作业数目太多时,可能会影响到系统的服务质量,数目太多时,可能会影响到系统的服务质量,比如使周比如使周转时间太长。转时间太长。但如果在内存中同时运行作业的数量太少但如果在内存中同时运行作业的数量太少时,又会导致系统的资源利用率和系统吞吐量太低。因时,又会导致系统的资源利用率和系统吞吐量太低。因此,此,多道程序度多道程序度的确定应根据系统的规模和运行速度等的确定应根据系统的规模和运行速度等情况做适当的折衷。情况做适当的折衷。 3.1 处理
11、机调度的层次处理机调度的层次 .11.2) 决定接纳哪些作业决定接纳哪些作业将哪些作业从外存调入内存,取决于所采用的将哪些作业从外存调入内存,取决于所采用的调度算法。调度算法。 先来先服务调度算法先来先服务调度算法 短作业优先调度算法短作业优先调度算法 作业优先级调度算法作业优先级调度算法 “响应比高者优先响应比高者优先”调度算法调度算法3.1 处理机调度的层次处理机调度的层次 .12.说明:说明: 批处理系统中,批处理系统中,作业进入系统后,总是先驻留在作业进入系统后,总是先驻留在外存的后备队列上,因此需要有作业调度的过程,以外存的后备队列上,因此需要有作业调度的过程,以便将它们分批地装入内
12、存。便将它们分批地装入内存。 分时系统中,分时系统中,为了做到及时响应,用户通过键盘为了做到及时响应,用户通过键盘输入的命令或数据都被直接送入内存,因而无需再配输入的命令或数据都被直接送入内存,因而无需再配置上述的作业调度机制,但也需要有某些限制性措施置上述的作业调度机制,但也需要有某些限制性措施来限制进入系统的用户数。来限制进入系统的用户数。 实时系统中,实时系统中,通常也不需要作业调度。通常也不需要作业调度。 3.1 处理机调度的层次处理机调度的层次 .13.3.1.2 低级调度低级调度(Low Level Scheduling)通 常通 常 低 级 调 度低 级 调 度 称 为称 为 进
13、 程 调 度进 程 调 度 或或 短 程 调 度短 程 调 度(ShortTerm Scheduling),它所调度的对象是进程,它所调度的对象是进程(或或内核级线程内核级线程)。进程调度是最基本的一种调度,在多道。进程调度是最基本的一种调度,在多道批处理、分时和实时三种类型的批处理、分时和实时三种类型的OS中,都必须配置这中,都必须配置这级调度。级调度。1低级调度的功能低级调度的功能低级调度用于决定就绪队列中的哪个进程低级调度用于决定就绪队列中的哪个进程(或内核或内核级线程级线程)应获得处理机,然后再由应获得处理机,然后再由分派程序分派程序执行把处理执行把处理机分配给该进程的具体操作。机分配
14、给该进程的具体操作。3.1 处理机调度的层次处理机调度的层次 .14.低级调度的低级调度的3个主要功能:个主要功能: (1) 保存处理机的现场信息保存处理机的现场信息 在进程调度进行调度时,首先需要保存当前进程在进程调度进行调度时,首先需要保存当前进程的处理机的现场信息,如程序计数器、多个通用寄存的处理机的现场信息,如程序计数器、多个通用寄存器中的内容等,将它们送入该进程的进程控制块器中的内容等,将它们送入该进程的进程控制块(PCB)中的相应单元。中的相应单元。(2) 按某种算法选取进程按某种算法选取进程 低级调度程序按某种算法如优先级算法、轮转法低级调度程序按某种算法如优先级算法、轮转法等,
15、从就绪队列中选取一个进程,把它的状态改为运等,从就绪队列中选取一个进程,把它的状态改为运行状态,并准备把处理机分配给它。行状态,并准备把处理机分配给它。 3.1 处理机调度的层次处理机调度的层次 .15.(3) 把处理器分配给进程把处理器分配给进程 由由分派程序分派程序(Dispatcher)把处理器分配给进程。把处理器分配给进程。此时需为选中的进程恢复处理机现场,即把选中进此时需为选中的进程恢复处理机现场,即把选中进程的进程控制块内有关处理机现场的信息装入处理程的进程控制块内有关处理机现场的信息装入处理器相应的各个寄存器中,把处理器的控制权交给该器相应的各个寄存器中,把处理器的控制权交给该进
16、程,让它从取出的断点处开始继续运行。进程,让它从取出的断点处开始继续运行。 3.1 处理机调度的层次处理机调度的层次 .16.2进程调度中的三个基本机制进程调度中的三个基本机制为实现进程调度,应具有如下三个基本机制:为实现进程调度,应具有如下三个基本机制:(1) 排队器。排队器。为了提高进程调度的效率,应事先将为了提高进程调度的效率,应事先将系统中所有的就绪进程按照一定的方式排成一个或多系统中所有的就绪进程按照一定的方式排成一个或多个队列,以便调度程序能最快地找到它。个队列,以便调度程序能最快地找到它。(2) 分派器分派器(分派程序分派程序)。分派器把由进程调度程序分派器把由进程调度程序所选定
17、的进程,从就绪队列中取出,然后进行上下文所选定的进程,从就绪队列中取出,然后进行上下文切换,将处理机分配给它切换,将处理机分配给它 3.1 处理机调度的层次处理机调度的层次 .17. (3) 上下文切换机制。上下文切换机制。当对处理机进行切换时,会当对处理机进行切换时,会发生两对上下文切换操作。发生两对上下文切换操作。 第一对上下文切换:第一对上下文切换:操作系统将保存当前进程的操作系统将保存当前进程的上下文,而装入分派程序的上下文,以便分派程序运上下文,而装入分派程序的上下文,以便分派程序运行。行。 第二对上下文切换:第二对上下文切换:将移出分派程序,而把新选将移出分派程序,而把新选进程的进
18、程的CPU现场信息装入到处理机的各个相应寄存器现场信息装入到处理机的各个相应寄存器中。中。 3.1 处理机调度的层次处理机调度的层次 .18.特别指出:特别指出:上下文切换将花费处理机时间,即上下文切换将花费处理机时间,即使是现代计算机,每一次上下文切换大约需要花费使是现代计算机,每一次上下文切换大约需要花费几毫秒的时间,该时间大约可执行上千条指令。几毫秒的时间,该时间大约可执行上千条指令。 为此,现在已有通过硬件为此,现在已有通过硬件(采用两组或多组寄存采用两组或多组寄存器器)的方法来减少上下文切换的时间。一组寄存器供的方法来减少上下文切换的时间。一组寄存器供处理机在系统态时使用,另一组寄存
19、器供应用程序处理机在系统态时使用,另一组寄存器供应用程序使用。在这种条件下的上下文切换只需改变指针,使用。在这种条件下的上下文切换只需改变指针,使其指向当前寄存器组即可。使其指向当前寄存器组即可。 3.1 处理机调度的层次处理机调度的层次 .19.3进程调度方式进程调度方式进程调度采用两种调度方式:进程调度采用两种调度方式:1) 非抢占方式非抢占方式(Nonpreemptive Mode)采用这种调度方式时,一旦把处理机分配给某进采用这种调度方式时,一旦把处理机分配给某进程后,不管它要运行多长时间,都一直让它运行下去,程后,不管它要运行多长时间,都一直让它运行下去,决不会因为时钟中断等原因而抢
20、占正在运行进程的处决不会因为时钟中断等原因而抢占正在运行进程的处理机,也不允许其它进程抢占已经分配给它的处理机。理机,也不允许其它进程抢占已经分配给它的处理机。直至该进程完成,自愿释放处理机,或发生某事件而直至该进程完成,自愿释放处理机,或发生某事件而被阻塞时,才再把处理机分配给其他进程。被阻塞时,才再把处理机分配给其他进程。 3.1 处理机调度的层次处理机调度的层次 .20. 采用非抢占调度方式时,可能引起进程调度的因素采用非抢占调度方式时,可能引起进程调度的因素可归结为如下几个:可归结为如下几个:(1) 正在执行的进程执行完毕,或因发生某事件不能正在执行的进程执行完毕,或因发生某事件不能再
21、继续执行;再继续执行;(2) 执行中的进程因提出执行中的进程因提出I/O请求而暂停执行;请求而暂停执行;(3) 在进程通信或同步过程中执行了某种原语操作,在进程通信或同步过程中执行了某种原语操作,如如Wait原语原语、Block原语原语等。等。非抢占调度方式的优点是实现简单,系统开销小,非抢占调度方式的优点是实现简单,系统开销小,适用于大多数的批处理系统环境。但难以满足紧急任务适用于大多数的批处理系统环境。但难以满足紧急任务立即执行的要求,在要求比较严格的实时系统中,不宜立即执行的要求,在要求比较严格的实时系统中,不宜采用这种调度方式。采用这种调度方式。 3.1 处理机调度的层次处理机调度的层
22、次 .21.2) 抢占方式抢占方式(Preemptive Mode)抢占式调度方式允许调度程序根据某种原则去暂抢占式调度方式允许调度程序根据某种原则去暂停某个正在执行的进程,将已分配给该进程的处理机停某个正在执行的进程,将已分配给该进程的处理机重新分配给另一进程。重新分配给另一进程。 抢占方式的优点:抢占方式的优点:可以防止一个长进程长时间占可以防止一个长进程长时间占用处理机,能为大多数进程提供更公平的服务,特别用处理机,能为大多数进程提供更公平的服务,特别是能满足对响应时间有着较严格要求的实时任务的需是能满足对响应时间有着较严格要求的实时任务的需求。但抢占方式比非抢占方式调度所需付出的开销较
23、求。但抢占方式比非抢占方式调度所需付出的开销较大。大。3.1 处理机调度的层次处理机调度的层次 .22.抢占调度方式基于的原则:抢占调度方式基于的原则:(1) 优先权原则优先权原则 通常是对一些重要的和紧急的作业赋予较高的通常是对一些重要的和紧急的作业赋予较高的优先权。当这种作业到达时,如果其优先权比正在优先权。当这种作业到达时,如果其优先权比正在执行进程的优先权高,便停止正在执行的当前进程,执行进程的优先权高,便停止正在执行的当前进程,将处理机分配给优先权高的新到的进程,使之执行;将处理机分配给优先权高的新到的进程,使之执行;或者说,允许优先权高的新到进程抢占当前进程的或者说,允许优先权高的
24、新到进程抢占当前进程的处理机。处理机。3.1 处理机调度的层次处理机调度的层次 .23.(2) 短作业短作业(进程进程)优先原则优先原则 当新到达的作业当新到达的作业(进程进程)比正在执行的作业比正在执行的作业(进程进程)明明显的短时,将暂停当前长作业显的短时,将暂停当前长作业(进程进程)的执行,将处理的执行,将处理机分配给新到的短作业机分配给新到的短作业(进程进程),使之优先执行;或者,使之优先执行;或者说,短作业说,短作业(进程进程)可以抢占当前较长作业可以抢占当前较长作业(进程进程)的处理的处理机。机。(3) 时间片原则时间片原则 各进程按时间片轮流运行,当一个时间片用完后,各进程按时间
25、片轮流运行,当一个时间片用完后,便停止该进程的执行而重新进行调度。这种原则适用便停止该进程的执行而重新进行调度。这种原则适用于分时系统、大多数的实时系统以及要求较高的批处于分时系统、大多数的实时系统以及要求较高的批处理系统。理系统。 3.1 处理机调度的层次处理机调度的层次 .24.3.1.3 中级调度中级调度(Intermediate Level Scheduling) 中级调度中级调度又称又称中程调度中程调度(Medium-Term Scheduling)。引引入中级调度的主要目的是为了提高内存利用率和系统吞入中级调度的主要目的是为了提高内存利用率和系统吞吐量。吐量。 将暂时不能运行的进程
26、,使之不再占用宝贵的内存将暂时不能运行的进程,使之不再占用宝贵的内存资源,而将它们资源,而将它们调至外存调至外存去等待,把此时的进程状态称去等待,把此时的进程状态称为为就绪驻外存状态就绪驻外存状态或或挂起状态挂起状态。当这些进程重又具备运。当这些进程重又具备运行条件且内存又有空闲时,由中级调度来决定把外存上行条件且内存又有空闲时,由中级调度来决定把外存上的那些又具备运行条件的就绪进程重新调入内存,并修的那些又具备运行条件的就绪进程重新调入内存,并修改其状态为就绪状态,挂在就绪队列上等待进程调度。改其状态为就绪状态,挂在就绪队列上等待进程调度。3.1 处理机调度的层次处理机调度的层次 .25.作
27、业调度、进程调度和中级调度说明:作业调度、进程调度和中级调度说明: 进程调度进程调度的运行频率最高,在分时系统中通常是的运行频率最高,在分时系统中通常是10100 ms便进行一次进程调度,因此把它称为便进行一次进程调度,因此把它称为短程短程调度调度。为避免进程调度占用太多的。为避免进程调度占用太多的CPU时间,进程调时间,进程调度算法不宜太复杂。度算法不宜太复杂。 作业调度作业调度往往是发生在一个往往是发生在一个(批批)作业运行完毕并作业运行完毕并退出系统,而需要重新调入一个退出系统,而需要重新调入一个(批批)作业进入内存时,作业进入内存时,故作业调度的周期较长,大约几分钟一次,因此把它故作业
28、调度的周期较长,大约几分钟一次,因此把它称为称为长程调度长程调度。由于其运行频率较低,故允许作业调。由于其运行频率较低,故允许作业调度算法花费较多的时间。度算法花费较多的时间。 中级调度中级调度的运行频率基本上介于上述两种调度之的运行频率基本上介于上述两种调度之间,因此把它称为间,因此把它称为中程调度中程调度。 3.1 处理机调度的层次处理机调度的层次 .26.3.2 调度队列模型和调度准则调度队列模型和调度准则 3.2.1调度队列模型调度队列模型1仅有进程调度的调度队列模型仅有进程调度的调度队列模型在分时系统中,通常仅设置进程调度,用户键入在分时系统中,通常仅设置进程调度,用户键入的命令和数
29、据都直接送入内存。的命令和数据都直接送入内存。对于命令,则由对于命令,则由OS为为之建立一个进程。之建立一个进程。系统可以把处于就绪状态的进程组系统可以把处于就绪状态的进程组织成栈、树或一个无序链表,至于到底采用其中哪种织成栈、树或一个无序链表,至于到底采用其中哪种形式,则与形式,则与OS类型和所采用的调度算法有关。类型和所采用的调度算法有关。 例如:例如:在分时系统中,常将就绪进程组织成在分时系统中,常将就绪进程组织成FIFO队列形式。每当队列形式。每当OS创建一个新进程时,便将它挂在就创建一个新进程时,便将它挂在就绪队列的末尾,然后按时间片轮转方式运行。绪队列的末尾,然后按时间片轮转方式运
30、行。 .27.进程在执行时可能出现的三种情况:进程在执行时可能出现的三种情况:(1) 任务在给定的时间片内已经完成,该进程便在任务在给定的时间片内已经完成,该进程便在释放处理机后进入完成状态;释放处理机后进入完成状态;(2) 任务在本次分得的时间片内尚未完成,任务在本次分得的时间片内尚未完成,OS便将便将该任务再放入就绪队列的末尾;该任务再放入就绪队列的末尾;(3) 在执行期间,进程因为某事件而被阻塞后,被在执行期间,进程因为某事件而被阻塞后,被OS放入阻塞队列。放入阻塞队列。图图3-1示出了仅具有进程调度的调度队列模型。示出了仅具有进程调度的调度队列模型。 3.2 调度队列模型和调度准则调度
31、队列模型和调度准则 .28.图图 3-1 仅具有进程调度的调度队列模型仅具有进程调度的调度队列模型 就就 绪绪 队队 列列阻阻 塞塞 队队 列列进程调度进程调度CPU进程完成进程完成等待事件等待事件交互用户交互用户事事件件出出现现时间片完时间片完3.2 调度队列模型和调度准则调度队列模型和调度准则 .29.2具有高级和低级调度的调度队列模型具有高级和低级调度的调度队列模型在批处理系统中,不仅需要进程调度,而且还在批处理系统中,不仅需要进程调度,而且还需有作业调度,由后者按一定的作业调度算法,从需有作业调度,由后者按一定的作业调度算法,从外存的后备队列中选择一批作业调入内存,并为它外存的后备队列
32、中选择一批作业调入内存,并为它们建立进程,送入就绪队列,然后才由进程调度按们建立进程,送入就绪队列,然后才由进程调度按照一定的进程调度算法选择一个进程,把处理机分照一定的进程调度算法选择一个进程,把处理机分配给该进程。配给该进程。 图图3-2示出了具有高、低两级调度的调度队列示出了具有高、低两级调度的调度队列模型:模型:3.2 调度队列模型和调度准则调度队列模型和调度准则 .30.图图3-2 具有高、低两级调度的调度队列模型具有高、低两级调度的调度队列模型 就就 绪绪 队队 列列进程调度进程调度CPU进程完成进程完成等待事件等待事件1作业作业调度调度事件事件1出现出现时间片完时间片完等待事件等
33、待事件2事件事件2出现出现等待事件等待事件n事件事件n出现出现后后 备备 队队 列列3.2 调度队列模型和调度准则调度队列模型和调度准则 .31.上述两种模型的主要区别:上述两种模型的主要区别:(1) 就绪队列的形式就绪队列的形式 在批处理系统中,最常用的是最高优先权优先调在批处理系统中,最常用的是最高优先权优先调度算法。度算法。相应地,最常用的就绪队列形式是相应地,最常用的就绪队列形式是优先权队优先权队列列,进程在进入优先级队列时,根据其优先权的高低,进程在进入优先级队列时,根据其优先权的高低,被插入具有相应优先权的位置上,调度程序总是把处被插入具有相应优先权的位置上,调度程序总是把处理机分
34、配给就绪队列中的队首进程。理机分配给就绪队列中的队首进程。在最高优先权优在最高优先权优先的调度算法中,也可采用先的调度算法中,也可采用无序链表方式无序链表方式,即每次把,即每次把新到的进程挂在链尾,而调度程序每次调度时,依次新到的进程挂在链尾,而调度程序每次调度时,依次比较该链中各进程的优先权,从中找出优先权最高的比较该链中各进程的优先权,从中找出优先权最高的进程,将之从链中摘下,并把处理机分配给它。进程,将之从链中摘下,并把处理机分配给它。3.2 调度队列模型和调度准则调度队列模型和调度准则 .32. (2) 设置多个阻塞队列设置多个阻塞队列 对于小型系统,可以只设置一个阻塞队列;但对于小型
35、系统,可以只设置一个阻塞队列;但当系统较大时,若只有一个阻塞队列,其长度必然当系统较大时,若只有一个阻塞队列,其长度必然会很长,队列中的进程数可以达到数百个,这将严会很长,队列中的进程数可以达到数百个,这将严重影响对阻塞队列操作的效率。重影响对阻塞队列操作的效率。 故在大、中型系统中通常都设置了若干个阻塞故在大、中型系统中通常都设置了若干个阻塞队列,每个队列对应于某一种进程阻塞事件。队列,每个队列对应于某一种进程阻塞事件。 3.2 调度队列模型和调度准则调度队列模型和调度准则 .33.3同时具有三级调度的调度队列模型同时具有三级调度的调度队列模型当在当在OS中引入中级调度后,人们可把进程的就中
36、引入中级调度后,人们可把进程的就绪状态分为绪状态分为内存就绪内存就绪(表示进程在内存中就绪表示进程在内存中就绪)和和外存外存就绪就绪(进程在外存中就绪进程在外存中就绪)。类似地,也可把阻塞状态。类似地,也可把阻塞状态进一步分成内存阻塞和外存阻塞两种状态。在调出操进一步分成内存阻塞和外存阻塞两种状态。在调出操作的作用下,可使进程状态由内存就绪转为外存就绪,作的作用下,可使进程状态由内存就绪转为外存就绪,由内存阻塞转为外存阻塞;在中级调度的作用下,又由内存阻塞转为外存阻塞;在中级调度的作用下,又可使外存就绪转为内存就绪。可使外存就绪转为内存就绪。图图3-3示出了具有三级调度的调度队列模型。示出了具
37、有三级调度的调度队列模型。 3.2 调度队列模型和调度准则调度队列模型和调度准则 .34.图图3-3 具有三级调度时的调度队列模型具有三级调度时的调度队列模型 3.2 调度队列模型和调度准则调度队列模型和调度准则 就绪队列就绪队列进程调度进程调度CPU就绪,挂起队列就绪,挂起队列中级调度中级调度阻塞,挂起队列阻塞,挂起队列阻塞队列阻塞队列等待事件等待事件进程完成进程完成时间片完时间片完作业调度作业调度交互型作业交互型作业后备队列后备队列批量作业批量作业挂起挂起事件出现事件出现事事件件出出现现挂起挂起.35.3.2.2 选择调度方式和调度算法的若干准则选择调度方式和调度算法的若干准则1面向用户的
38、准则面向用户的准则(1) 周转时间短周转时间短 通常把周转时间的长短作为通常把周转时间的长短作为评价批处理系统评价批处理系统的性的性能、选择作业调度方式与算法的重要准则之一。能、选择作业调度方式与算法的重要准则之一。 作业周转时间:作业周转时间:是指从作业被提交给系统开始,是指从作业被提交给系统开始,到作业完成为止的这段时间间隔。到作业完成为止的这段时间间隔。它包括四部分时间:它包括四部分时间:作业在外存后备队列上等待作业调度的时间、进程在作业在外存后备队列上等待作业调度的时间、进程在就绪队列上等待进程调度的时间、进程在就绪队列上等待进程调度的时间、进程在CPU上执行上执行的时间及进程等待的时
39、间及进程等待I/O操作完成的时间。操作完成的时间。3.2 调度队列模型和调度准则调度队列模型和调度准则 .36.对每个用户而言,都希望自己作业的周转时间对每个用户而言,都希望自己作业的周转时间最短。但作为计算机系统的管理者,则总是希望能最短。但作为计算机系统的管理者,则总是希望能使使平均周转时间平均周转时间最短,这不仅会有效地提高系统资最短,这不仅会有效地提高系统资源的利用率,而且还可使大多数用户都感到满意。源的利用率,而且还可使大多数用户都感到满意。 平均周转时间:平均周转时间: niiTnT113.2 调度队列模型和调度准则调度队列模型和调度准则 .37.作业的周转时间作业的周转时间T与系
40、统为它提供服务的时间与系统为它提供服务的时间Ts之比,即之比,即W = T / Ts,称为,称为带权周转时间带权周转时间。 平均带权周转时间平均带权周转时间则可表示为:则可表示为: niiTTnW1s13.2 调度队列模型和调度准则调度队列模型和调度准则 .38.(2) 响应时间快响应时间快 响应时间的长短常用来响应时间的长短常用来评价分时系统的性能评价分时系统的性能,这,这是选择分时系统中进程调度算法的重要准则之一。是选择分时系统中进程调度算法的重要准则之一。 响应时间:响应时间:是从用户通过键盘提交一个请求开始,是从用户通过键盘提交一个请求开始,直至系统首次产生响应为止的时间,或者说,直到
41、屏直至系统首次产生响应为止的时间,或者说,直到屏幕上显示出结果为止的一段时间间隔。幕上显示出结果为止的一段时间间隔。它包括三部分它包括三部分时间:时间:从键盘输入的请求信息传送到处理机的时间,从键盘输入的请求信息传送到处理机的时间,处理机对请求信息进行处理的时间,以及将所形成的处理机对请求信息进行处理的时间,以及将所形成的响应信息回送到终端显示器的时间。响应信息回送到终端显示器的时间。 3.2 调度队列模型和调度准则调度队列模型和调度准则 .39.3.2 调度队列模型和调度准则调度队列模型和调度准则 (3) 截止时间的保证截止时间的保证 截止时间的保证是截止时间的保证是评价实时系统性能评价实时
42、系统性能的重要指的重要指标,因而是选择实时调度算法的重要准则。标,因而是选择实时调度算法的重要准则。 截止时间:截止时间:是指某任务必须开始执行的最迟时是指某任务必须开始执行的最迟时间,或必须完成的最迟时间。间,或必须完成的最迟时间。 对于严格的实时系统,其调度方式和调度算法对于严格的实时系统,其调度方式和调度算法必须能保证这一点,否则将可能造成难以预料的后必须能保证这一点,否则将可能造成难以预料的后果。果。.40.(4) 优先权准则优先权准则 在批处理、分时和实时系统中选择调度算法在批处理、分时和实时系统中选择调度算法时,都可遵循优先权准则,以便让某些紧急的作时,都可遵循优先权准则,以便让某
43、些紧急的作业能得到及时处理。业能得到及时处理。 在要求较严格的场合,往往还须选择抢占式在要求较严格的场合,往往还须选择抢占式调度方式,才能保证紧急作业得到及时处理。调度方式,才能保证紧急作业得到及时处理。 3.2 调度队列模型和调度准则调度队列模型和调度准则 .41.2. 面向系统的准则面向系统的准则(1) 系统吞吐量高系统吞吐量高 系统吞吐量系统吞吐量是用于是用于评价批处理系统性能评价批处理系统性能的另一个重的另一个重要指标,因而是选择批处理作业调度的重要准则。要指标,因而是选择批处理作业调度的重要准则。 吞吐量吞吐量是指在单位时间内系统所完成的作业数,因是指在单位时间内系统所完成的作业数,
44、因而它与批处理作业的平均长度具有密切关系。而它与批处理作业的平均长度具有密切关系。 作业调度的方式和算法对吞吐量的大小将产生较大作业调度的方式和算法对吞吐量的大小将产生较大影响。事实上,对于同一批作业,若采用了较好的调度影响。事实上,对于同一批作业,若采用了较好的调度方式和算法,则可显著地提高系统的吞吐量。方式和算法,则可显著地提高系统的吞吐量。 3.2 调度队列模型和调度准则调度队列模型和调度准则 .42.(2) 处理机利用率高处理机利用率高 对于大、中型多用户系统,由于对于大、中型多用户系统,由于CPU价格十分昂价格十分昂贵,处理机的利用率成为衡量系统性能的十分重要的贵,处理机的利用率成为
45、衡量系统性能的十分重要的指标;而调度方式和算法对处理机的利用率起着十分指标;而调度方式和算法对处理机的利用率起着十分重要的作用。重要的作用。 在实际系统中,在实际系统中,CPU的利用率一般在的利用率一般在40%(系统负系统负荷较轻荷较轻)到到90%之间。在大、中型系统中,在选择调度之间。在大、中型系统中,在选择调度方式和算法时,应考虑到这一准则。方式和算法时,应考虑到这一准则。 对于单用户微机或某些实时系统,该准则并不重对于单用户微机或某些实时系统,该准则并不重要。要。 3.2 调度队列模型和调度准则调度队列模型和调度准则 .43.(3) 各类资源的平衡利用各类资源的平衡利用 在大、中型系统中
46、,不仅要使处理机的利用率在大、中型系统中,不仅要使处理机的利用率高,而且还应能有效地利用其它各类资源,如内存、高,而且还应能有效地利用其它各类资源,如内存、外存和外存和I/O设备等。设备等。 选择适当的调度方式和算法可以保持系统中各选择适当的调度方式和算法可以保持系统中各类资源都处于忙碌状态。类资源都处于忙碌状态。 对于微型机和某些实时系统而言,该准则并不对于微型机和某些实时系统而言,该准则并不重要。重要。 3.2 调度队列模型和调度准则调度队列模型和调度准则 .44.3.3 调度算法调度算法 3.2.1先来先服务和短作业先来先服务和短作业(进程进程)优先调度算法优先调度算法1先来先服务调度算
47、法先来先服务调度算法 先来先服务先来先服务(FCFS)调度算法调度算法是一种最简单的调度是一种最简单的调度算法,该算法可用于作业调度和进程调度。算法,该算法可用于作业调度和进程调度。 作业调度采用该算法时,每次调度都是从后备作作业调度采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。入就绪队列。 进程调度中采用进程调度中采用该该算法时,每次调度是从就绪队算法时,每次调度是从就绪队列中选择一个最先进入该队列的进程,为之
48、分配处理列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或发生某机,使之投入运行。该进程一直运行到完成或发生某事件而阻塞后才放弃处理机。事件而阻塞后才放弃处理机。 .45. FCFS 算法有利于长作业算法有利于长作业(进程进程),而不利于短,而不利于短作业作业(进程进程)。下表列出了采用。下表列出了采用FCFS算算法时法时 A、B、C、D 四个作业分别到达系统的时间、要求服务的四个作业分别到达系统的时间、要求服务的时间、开始执行的时间、完成的时间、各自的周转时间、开始执行的时间、完成的时间、各自的周转时间和带权周转时间。时间和带权周转时间。 3.3 调度算法
49、调度算法 进程名 到达时间 服务时间 开始执行时间 完成时间 周转时间 带权周 转时间 A 0 1 0 1 1 1 B 1 100 1 101 100 1 C 2 1 101 102 100 100 D 3 100 102 202 199 1.99 不能忍受!.46. 从上表观察:从上表观察:其中短作业其中短作业C的带权周转时间竞高的带权周转时间竞高达达100,这是不能容忍的;而长作业,这是不能容忍的;而长作业D的带权周转时的带权周转时间仅为间仅为1.99。据此可知,。据此可知,FCFS调度算法有利于调度算法有利于CPU繁忙型的作业,而不利于繁忙型的作业,而不利于I/O繁忙型的作业繁忙型的作业
50、(进程进程)。 CPU繁忙型作业是指该类作业需要大量的繁忙型作业是指该类作业需要大量的CPU时时间进行计算,而很少请求间进行计算,而很少请求I/O。通常的。通常的科学计算科学计算便属便属于于CPU繁忙型作业。繁忙型作业。I/O繁忙型作业是指繁忙型作业是指CPU进行处进行处理时需频繁地请求理时需频繁地请求I/O。目前的。目前的大多数事务处理大多数事务处理都属都属于于I/O繁忙型作业。繁忙型作业。3.3 调度算法调度算法 .47.通过示例说明采用通过示例说明采用FCFS调度算法时的调度性能:调度算法时的调度性能: 图图3-4(a)示出有五个进程示出有五个进程A、B、C、D、E,它们到达的,它们到达
51、的时间分别是时间分别是0、1、2、3和和4,所要求的服务时间分别是,所要求的服务时间分别是4、3、5、2和和4,其完成时间分别是,其完成时间分别是4、7、12、14和和18。3.3 调度算法调度算法 进程名 A B C D E 平 均 到达时间 0 1 2 3 4 作业 情况 调度 算法 服务时间 4 3 5 2 4 完成时间 4 7 12 14 18 周转时间 4 6 10 11 14 9 FCFS ( a ) 带权周转时间 1 2 2 5.5 3.5 2.8 完成时间 4 9 18 6 13 周转时间 4 8 16 3 9 8 SJF ( b ) 带权周转时间 1 2.67 3.1 1.5
52、 2.25 2.1 图图3-4 FCFS调度算法的性能调度算法的性能 .48.2短作业短作业(进程进程)优先调度算法优先调度算法短作业短作业(进程进程)优先调度算法优先调度算法SJ(P)F,是指对短作,是指对短作业或短进程优先调度的算法。它们可以分别用于作业业或短进程优先调度的算法。它们可以分别用于作业调度和进程调度。调度和进程调度。 短作业优先短作业优先(SJF)的调度算法的调度算法是从后备队列中选是从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调择一个或若干个估计运行时间最短的作业,将它们调入内存运行。而入内存运行。而短进程优先短进程优先(SPF)调度算法调度算法则是从就则是从
53、就绪队列中选出一个估计运行时间最短的进程,将处理绪队列中选出一个估计运行时间最短的进程,将处理机分配给它,使它立即执行并一直执行到完成,或发机分配给它,使它立即执行并一直执行到完成,或发生某事件被阻塞而放弃处理机时再重新调度。生某事件被阻塞而放弃处理机时再重新调度。 3.3 调度算法调度算法 .49.采用前述示例,将采用前述示例,将FCFS调度算法,改用调度算法,改用SJ(P)F算法重算法重新调度,并进行性能分析:新调度,并进行性能分析: 由由图图3-4中中(a)和和(b)可知,采用可知,采用SJ(P)F算法后,不论是平均周算法后,不论是平均周转时间还是平均带权周转时间,都有较明显的改善。说明
54、转时间还是平均带权周转时间,都有较明显的改善。说明SJF调调度算法能有效地降低作业的平均等待时间,提高系统吞吐量。度算法能有效地降低作业的平均等待时间,提高系统吞吐量。 3.3 调度算法调度算法 进程名 A B C D E 平 均 到达时间 0 1 2 3 4 作业 情况 调度 算法 服务时间 4 3 5 2 4 完成时间 4 7 12 14 18 周转时间 4 6 10 11 14 9 FCFS ( a ) 带权周转时间 1 2 2 5.5 3.5 2.8 完成时间 4 9 18 6 13 周转时间 4 8 16 3 9 8 SJF ( b ) 带权周转时间 1 2.67 3.1 1.5 2
55、.25 2.1 .50.SJ(P)F调度算法也存在不容忽视的缺点:调度算法也存在不容忽视的缺点:(1)该算法对长作业不利。该算法对长作业不利。更严重的是,如果有一长更严重的是,如果有一长作业作业( (进程进程) )进入系统的后备队列进入系统的后备队列( (就绪队列就绪队列) ),由于调,由于调度程序总是优先调度那些度程序总是优先调度那些( (即使是后进来的即使是后进来的) )短作业短作业( (进进程程) ),将导致长作业,将导致长作业( (进程进程) )长期不被调度。长期不被调度。(2)该算法完全未考虑作业的紧迫程度。该算法完全未考虑作业的紧迫程度。因而不能保因而不能保证紧迫性作业证紧迫性作业
56、( (进程进程) )会被及时处理。会被及时处理。(3)该算法不一定能真正做到短作业优先调度。该算法不一定能真正做到短作业优先调度。由于由于作业作业( (进程进程) )的长短只是根据用户所提供的估计执行时的长短只是根据用户所提供的估计执行时间而定的,而用户又可能会有意或无意地缩短其作业间而定的,而用户又可能会有意或无意地缩短其作业的估计运行时间。的估计运行时间。3.3 调度算法调度算法 .51.3.3.2高优先权优先调度算法高优先权优先调度算法1优先权调度算法的类型优先权调度算法的类型为了照顾紧迫型作业,使之在进入系统后便获得为了照顾紧迫型作业,使之在进入系统后便获得优先处理,引入最高优先权优先
57、优先处理,引入最高优先权优先(FPF)调度算法。此调度算法。此算法可作为作业调度算法,也可作为进程调度算法,算法可作为作业调度算法,也可作为进程调度算法,还可用于实时系统中。还可用于实时系统中。 该算法用于作业调度时,系统将从后备队列中选该算法用于作业调度时,系统将从后备队列中选择若干个优先权最高的作业装入内存。择若干个优先权最高的作业装入内存。 该算法用于进程调度时,把处理机分配给就绪队该算法用于进程调度时,把处理机分配给就绪队列中优先权最高的进程,此时,可进一步把该算法分列中优先权最高的进程,此时,可进一步把该算法分成如下两种:成如下两种: 3.3 调度算法调度算法 .52.1) 非抢占式
58、优先权算法非抢占式优先权算法系统一旦把处理机分配给就绪队列中优先权最高系统一旦把处理机分配给就绪队列中优先权最高的进程后,该进程便一直执行下去,直至完成;或因的进程后,该进程便一直执行下去,直至完成;或因发生某事件使该进程放弃处理机时,系统方可再将处发生某事件使该进程放弃处理机时,系统方可再将处理机重新分配给另一优先权最高的进程。理机重新分配给另一优先权最高的进程。 此方式下的调度算法主要用于批处理系统中;也此方式下的调度算法主要用于批处理系统中;也可用于某些对实时性要求不严的实时系统中。可用于某些对实时性要求不严的实时系统中。 3.3 调度算法调度算法 .53.2) 抢占式优先权调度算法抢占
59、式优先权调度算法系统同样是把处理机分配给优先权最高的进程,系统同样是把处理机分配给优先权最高的进程,使之执行。但在其执行期间,只要又出现了另一个其使之执行。但在其执行期间,只要又出现了另一个其优先权更高的进程,进程调度程序就立即停止当前进优先权更高的进程,进程调度程序就立即停止当前进程的执行,重新将处理机分配给新到的优先权最高的程的执行,重新将处理机分配给新到的优先权最高的进程。进程。 抢占式的优先权调度算法能更好地满足紧迫作业抢占式的优先权调度算法能更好地满足紧迫作业的要求,常用于要求比较严格的实时系统中,以及对的要求,常用于要求比较严格的实时系统中,以及对性能要求较高的批处理和分时系统中。
60、性能要求较高的批处理和分时系统中。 3.3 调度算法调度算法 .54.2优先权的类型优先权的类型对于最高优先权优先调度算法,关键在于是使用对于最高优先权优先调度算法,关键在于是使用静态优先权静态优先权,还是,还是动态优先权动态优先权,及如何确定进程的优,及如何确定进程的优先权。先权。1) 静态优先权静态优先权静态优先权在创建进程时确定,且在进程的整个静态优先权在创建进程时确定,且在进程的整个运行期间保持不变。一般地,优先权是利用某一范围运行期间保持不变。一般地,优先权是利用某一范围内的一个整数来表示的,例如,内的一个整数来表示的,例如,07或或0255中的某中的某一整数,该整数称为优先数,但一
61、整数,该整数称为优先数,但具体用法各异:具体用法各异:有的有的系统用系统用 “0” 表示最高优先权,当数值愈大时,其优表示最高优先权,当数值愈大时,其优先权愈低;而有些系统恰恰相反。先权愈低;而有些系统恰恰相反。 3.3 调度算法调度算法 .55.确定进程优先权的依据:确定进程优先权的依据:(1)进程类型。进程类型。通常通常系统进程系统进程的优先权高于一般用户进的优先权高于一般用户进程的优先权。程的优先权。(2)进程对资源的需求。进程对资源的需求。如进程估计执行时间及内存需如进程估计执行时间及内存需要量多少,对要求少的进程应赋予较高的优先权。要量多少,对要求少的进程应赋予较高的优先权。(3)用
62、户要求。用户要求。由用户进程的紧迫程度及用户所付费用由用户进程的紧迫程度及用户所付费用的多少来确定优先权的。的多少来确定优先权的。 静态优先权方法简单易行,系统开销小,但不够精静态优先权方法简单易行,系统开销小,但不够精确,很可能出现优先权低的作业确,很可能出现优先权低的作业(进程进程)长期没有被调度长期没有被调度的情况。的情况。3.3 调度算法调度算法 在要求不高的系统中才使用静态优先权在要求不高的系统中才使用静态优先权.56.2) 动态优先权动态优先权动态优先权是指在创建进程时所赋予的优先权,可以随进动态优先权是指在创建进程时所赋予的优先权,可以随进程的推进或随其等待时间的增加而改变,以便
63、获得更好的调度程的推进或随其等待时间的增加而改变,以便获得更好的调度性能。性能。 例如:例如:可以规定在就绪队列中的进程,随其等待时间的增可以规定在就绪队列中的进程,随其等待时间的增长,其优先权以速率长,其优先权以速率a提高。若所有的进程都具有相同的优先提高。若所有的进程都具有相同的优先权初值,则显然是最先进入就绪队列的进程将因其动态优先权权初值,则显然是最先进入就绪队列的进程将因其动态优先权变得最高而优先获得处理机,变得最高而优先获得处理机,此即此即FCFS算法算法。若所有的就绪。若所有的就绪进程具有各不相同的优先权初值,那么,对于优先权初值低的进程具有各不相同的优先权初值,那么,对于优先权
64、初值低的进程,在等待了足够的时间后,其优先权便可能升为最高,从进程,在等待了足够的时间后,其优先权便可能升为最高,从而可以获得处理机。当采用抢占式优先权调度算法时,如果再而可以获得处理机。当采用抢占式优先权调度算法时,如果再规定当前进程的优先权以速率规定当前进程的优先权以速率b下降,则可防止一个长作业长下降,则可防止一个长作业长期地垄断处理机。期地垄断处理机。 3.3 调度算法调度算法 .57.3高响应比优先调度算法高响应比优先调度算法在批处理系统中,短作业优先算法是一种比较好的在批处理系统中,短作业优先算法是一种比较好的算法,其主要的不足之处是长作业的运行得不到保证。算法,其主要的不足之处是
65、长作业的运行得不到保证。如果能为每个作业引入前面所述的动态优先权,并使作如果能为每个作业引入前面所述的动态优先权,并使作业的优先级随着等待时间的增加而以速率业的优先级随着等待时间的增加而以速率a 提高,则长提高,则长作业在等待一定的时间后,必然有机会分配到处理机。作业在等待一定的时间后,必然有机会分配到处理机。该优先权的变化规律可描述为:该优先权的变化规律可描述为: 3.3 调度算法调度算法 要求服务时间要求服务时间要求服务时间要求服务时间等待时间等待时间优先权优先权+.58.由于等待时间与服务时间之和就是系统对该作由于等待时间与服务时间之和就是系统对该作业的业的响应时间响应时间,故该优先权又
66、相当于响应比,故该优先权又相当于响应比RP。 据此,又可表示为:据此,又可表示为: 3.3 调度算法调度算法 要求服务时间要求服务时间响应时间响应时间要求服务时间要求服务时间要求服务时间要求服务时间等待时间等待时间+PR.59.由上式可以看出:由上式可以看出:(1) 如果作业的等待时间相同,则要求服务的时间愈如果作业的等待时间相同,则要求服务的时间愈短,其优先权愈高,因而该算法短,其优先权愈高,因而该算法有利于短作业有利于短作业。(2) 当要求服务的时间相同时,作业的优先权决定于当要求服务的时间相同时,作业的优先权决定于其等待时间,等待时间愈长,其优先权愈高,因而它其等待时间,等待时间愈长,其优先权愈高,因而它实现的是实现的是先来先服务先来先服务。 (3) 对于长作业,作业的优先级可以随等待时间的增对于长作业,作业的优先级可以随等待时间的增加而提高,当其等待时间足够长时,其优先级便可升加而提高,当其等待时间足够长时,其优先级便可升到很高,也可获得处理机。到很高,也可获得处理机。3.3 调度算法调度算法 .60.总之,总之,高响应比优先调度算法高响应比优先调度算法既照顾了短作业,既照顾了