❶ 什么是进程调度
高级调度:又称作业调度。其主要功能是根据一定的算法,从输人的一批作业中选出若干个作业,分配必要的资源,如内存、外设等,为它建立相应的用户作业进程和为其服务的系统进程(如输人、输出进程),最后把它们的程序和数据调人内存,等待进程调度程序对其执行调度,并在作业完成后作善后处理工作。
低级调度:又称进程调度。其主要功能是根据一定的算法将CPU分派给就绪队列中的一个进程。执行低级调度功能的程序称做进程调度程序,由它实现 CPU在进程间的切换。进程调度的运行频率很高,在分时系统中往往几十毫秒就要运行一次。进程调度是操作系统中最基本的一种调度。在一般类型的操作系统中都必须有进程调度,而且它的策略的优劣直接影响整个系统的计能。
中级调度:又称交换调度。为了使内存中同时存放的进程数目不至于太多,有时就需要把某些进程从内存中移到外存上,以减少多道程序的数目,为此设立了中级调度。特别在采用虚拟存储技术的系统或分时系统中,往往增加中级调度这一级。所以中级调度的功能是在内存使用情况紧张时,将一些暂时不能运行的讲程从内存对换到外存上等待。当以后内存有足够的空闲空间时,再将合适的进程重新换人内存,等待进程调度。引人中级调度的主要目的是为了提高内存的利用率和系统吞吐量。它实际上就是存储器管理中的对换功能
❷ 什么是进程调度常用的进程调度算法有哪些试比较他们之间的性能。 什么是进程调度
进程调度,用户进程数进程调度一般都多于处理机数、这将导致它们互相争夺处理机。另外,系统进程也同样需要使用处理机。无论是在批处理系统还是分时系统中,用户进程数 进程调度 一般都多于处理机数、这将导致它们互相争夺处理机。另外,系统进程也同样需要使用处理机。这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。 进程调度的的分级 高级、中级和低级调度作业从提交开始直到完成,往往要经历下述三级调度: 高级调度:(High-Level Scheling)又称为作业调度,它决定把后备作业调入内存运行; 低级调度:(Low-Level Scheling)又称为进程调度,它决定把就绪队列的某进程获得CPU; 中级调度:(Intermediate-Level Scheling)又称为在虚拟存储器中引入,在内、外存对换区进行进程对换。先进先出算法 进程调度 算法总是把处理机分配给最先进入就绪队列的进程,一个进程一旦分得处理机,便一直执行下去,直到该进程完成或阻塞时,才释放处理机。 例如,有三个进程P1、P2和P3先后进入就绪队列,它们的执行期分别是21、6和3个单位时间, 执行情况如下图: 对于P1、P2、P3的周转时间为21、27、30,平均周转时间为26。 可见,FIFO算法服务质量不佳,容易引起作业用户不满,常作为一种辅助调度算法。 最短CPU运行期优先调度算法(SCBF--Shortest CPU Burst First) 该算法从就绪队列中选出“下一个CPU执行期”最短的进程,为之分配处理机。 例如,在就绪队列中有四个进程P1、P2、P3和P4,它们的下一个执行期分别是16、12、4和3个单位时间,执行情况如下图: P1、P2、P3和P4的周转时间分别为35、19、7、3,平均周转时间为16。 该算法虽可获得较好的调度性能,但难以准确地知道下一个CPU执行期,而只能根据每一个进程的执行历史来预测。 轮转法 前几种算法主要用于批处理系统中,不能作为分时系统中的主调度算法,在分时系统中,都采用时间片轮转法。 简单轮转法:系统将所有就绪进程按FIFO规则排队,按一定的时间间隔把处理机分配给队列中的进程。这样,就绪队列中所有进程均可获得一个时间片的处理机而运行。 多级队列方法:将系统中所有进程分成若干类,每类为一级。 多级反馈队列 多级反馈队列方式是在系统中设置多个就绪队列,并赋予各队列以不同的优先权
❸ 什么是进程调度常用的进程调度方式有哪两种
抢占方式和非抢占方式
❹ 第三章 进程调度的几种方式
进程调度概念:操作系统必须为多个,吗进程可能有竞争的请求分配计算机资源。对处理器而言,可分配的资源是在处理器上的执行时间,分配途径是调度。调度功能必须设计成可以满足多个目标,包括公平、任何进程都不会饿死、有效地使用处理器时间和低开销。此外,调度功能可能需要为某些进程的启动或结束考虑不同的优先级和实时最后期限。
这些年以来,调度已经成为深入研究的焦点,并且已经实现了许多不同的算法。如今,调度研究的重点是开发多处理系统,特别是用于多线程的。
下面简介几种调度算法。
一、先来先服务和短作业(进程)优先调度算法
1.先来先服务调度算法
先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。在进程调度中采用FCFS算法时,则每次调度是从就绪队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或发生某事件而阻塞后才放弃处理机。
2.短作业(进程)优先调度算法
短作业(进程)优先调度算法SJ(P)F,是指对短作业或短进程优先调度的算法。它们可以分别用于作业调度和进程调度。短作业优先(SJF)的调度算法是从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存运行。而短进程优先(SPF)调度算法则是从就绪队列中选出一个估计运行时间最短的进程,将处理机分配给它,使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机时再重新调度。
二、高优先权优先调度算法
1.优先权调度算法的类型
为了照顾紧迫型作业,使之在进入系统后便获得优先处理,引入了最高优先权优先(FPF)调度算法。此算法常被用于批处理系统中,作为作业调度算法,也作为多种操作系统中的进程调度算法,还可用于实时系统中。当把该算法用于作业调度时,系统将从后备队列中选择若干个优先权最高的作业装入内存。当用于进程调度时,该算法是把处理机分配给就绪队列中优先权最高的进程,这时,又可进一步把该算法分成如下两种。
1) 非抢占式优先权算法
在这种方式下,系统一旦把处理机分配给就绪队列中优先权最高的进程后,该进程便一直执行下去,直至完成;或因发生某事件使该进程放弃处理机时,系统方可再将处理机重新分配给另一优先权最高的进程。这种调度算法主要用于批处理系统中;也可用于某些对实时性要求不严的实时系统中。
2) 抢占式优先权调度算法
在这种方式下,系统同样是把处理机分配给优先权最高的进程,使之执行。但在其执行期间,只要又出现了另一个其优先权更高的进程,进程调度程序就立即停止当前进程(原优先权最高的进程)的执行,重新将处理机分配给新到的优先权最高的进程。因此,在采用这种调度算法时,是每当系统中出现一个新的就绪进程i 时,就将其优先权Pi与正在执行的进程j 的优先权Pj进行比较。如果Pi≤Pj,原进程Pj便继续执行;但如果是Pi>Pj,则立即停止Pj的执行,做进程切换,使i 进程投入执行。显然,这种抢占式的优先权调度算法能更好地满足紧迫作业的要求,故而常用于要求比较严格的实时系统中,以及对性能要求较高的批处理和分时系统中。
2.高响应比优先调度算法
在批处理系统中,短作业优先算法是一种比较好的算法,其主要的不足之处是长作业的运行得不到保证。如果我们能为每个作业引入前面所述的动态优先权,并使作业的优先级随着等待时间的增加而以速率a 提高,则长作业在等待一定的时间后,必然有机会分配到处理机。该优先权的变化规律可描述为:
由于等待时间与服务时间之和就是系统对该作业的响应时间,故该优先权又相当于响应比RP。据此,又可表示为:
由上式可以看出:
(1) 如果作业的等待时间相同,则要求服务的时间愈短,其优先权愈高,因而该算法有利于短作业。
(2) 当要求服务的时间相同时,作业的优先权决定于其等待时间,等待时间愈长,其优先权愈高,因而它实现的是先来先服务。
(3) 对于长作业,作业的优先级可以随等待时间的增加而提高,当其等待时间足够长时,其优先级便可升到很高,从而也可获得处理机。简言之,该算法既照顾了短作业,又考虑了作业到达的先后次序,不会使长作业长期得不到服务。因此,该算法实现了一种较好的折衷。当然,在利用该算法时,每要进行调度之前,都须先做响应比的计算,这会增加系统开销。
三、基于时间片的轮转调度算法
1.时间片轮转法
1) 基本原理
在早期的时间片轮转法中,系统将所有的就绪进程按先来先服务的原则排成一个队列,每次调度时,把CPU 分配给队首进程,并令其执行一个时间片。时间片的大小从几ms 到几百ms。当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序便据此信号来停止该进程的执行,并将它送往就绪队列的末尾;然后,再把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片。这样就可以保证就绪队列中的所有进程在一给定的时间内均能获得一时间片的处理机执行时间。换言之,系统能在给定的时间内响应所有用户的请求。
2.多级反馈队列调度算法
前面介绍的各种用作进程调度的算法都有一定的局限性。如短进程优先的调度算法,仅照顾了短进程而忽略了长进程,而且如果并未指明进程的长度,则短进程优先和基于进程长度的抢占式调度算法都将无法使用。而多级反馈队列调度算法则不必事先知道各种进程所需的执行时间,而且还可以满足各种类型进程的需要,因而它是目前被公认的一种较好的进程调度算法。在采用多级反馈队列调度算法的系统中,调度算法的实施过程如下所述。
(1) 应设置多个就绪队列,并为各个队列赋予不同的优先级。第一个队列的优先级最高,第二个队列次之,其余各队列的优先权逐个降低。该算法赋予各个队列中进程执行时间片的大小也各不相同,在优先权愈高的队列中,为每个进程所规定的执行时间片就愈小。例如,第二个队列的时间片要比第一个队列的时间片长一倍,……,第i+1个队列的时间片要比第i个队列的时间片长一倍。
(2) 当一个新进程进入内存后,首先将它放入第一队列的末尾,按FCFS原则排队等待调度。当轮到该进程执行时,如它能在该时间片内完成,便可准备撤离系统;如果它在一个时间片结束时尚未完成,调度程序便将该进程转入第二队列的末尾,再同样地按FCFS原则等待调度执行;如果它在第二队列中运行一个时间片后仍未完成,再依次将它放入第三队列,……,如此下去,当一个长作业(进程)从第一队列依次降到第n队列后,在第n 队列便采取按时间片轮转的方式运行。
(3) 仅当第一队列空闲时,调度程序才调度第二队列中的进程运行;仅当第1~(i-1)队列均空时,才会调度第i队列中的进程运行。如果处理机正在第i队列中为某进程服务时,又有新进程进入优先权较高的队列(第1~(i-1)中的任何一个队列),则此时新进程将抢占正在运行进程的处理机,即由调度程序把正在运行的进程放回到第i队列的末尾,把处理机分配给新到的高优先权进程。
❺ 什么是进程调度常用的进程调度算法有哪些
无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数、这将导致它们互相争夺处理机。另外,系统进程也同样需要使用处理机。这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。就是调度。
有先来先服务调度算法、优先数调度算法、时间片轮转算法、分级调度算法 、最短作业时间优先(抢占式和非抢占式)、最高响应比调度算法,乐透调度等。
❻ 进程调度的方式
当一个进程正在运行时,系统可以基于某种原则,剥夺已分配给它的处理机,将之分配给其它进程。剥夺原则有:优先权原则、短进程优先原则、时间片原则。
例如,有三个进程P1、P2、P3先后到达,它们分别需要20、4和2个单位时间运行完毕。
假如它们就按P1、P2、P3的顺序执行,且不可剥夺,则三进程各自的周转时间分别为20、24、
26个单位时间,平均周转时间是23.33个时间单位。
假如用时间片原则的剥夺调度方式,可得到:
可见:P1、P2、P3的周转时间分别为26、10、6个单位时间(假设时间片为2个单位时间),平均周转时间为14个单位时间。
衡量进程调度性能的指标有:周转时间、响应时间、CPU-I/O执行期。
❼ 进程调度算法1——FCFS、SJF、HNNR
进程的调度方式有两种: 非剥夺调度方式(非抢占式)和剥夺调度方式(抢占方式)。
非抢占式:只允许进程主动放弃处理机。如进程运行结束、异常结束或主动请求I/O阻塞。在运行的过程中即使有更紧迫的任务到达,当前进程依然会继续使用处理机,直到该进程终止或主动要求进入阻塞态。
抢占式:当一个进程正在处理机上执行时,如果有一个更重要更紧迫的进程需要处理机,则立即暂停正在执行的进程,将处理机分配给更重要更紧迫的那个进程。
下面介绍适用于早期操作系统几种进程调度的算法
先来先服务(FCFS):按照到达的先后顺序调度,事实上就是等待时间越久的越优先得到服务。
下面表示按照先来先服务算法的执行顺序
计算进程的几个衡量指标:
短作业优先算法是非抢占式的算法,但是也有抢占式的版本—— 最短剩余时间优先算法(STRN,Shortest Remaining Time Next) 。
用于进程的调度算法称为短进程优先调度算法(SPF,Shortest Process First)。
短作业/进程优先调度算法:每次调度时选择当前已到达且运行时间最短的作业/进程.。
因为进程1最先达到,此时没有其他线程,所以进程1先被服务。当进程1运行完后,进程2和3已经到达,此时进程3需要的运行时间比进程2少,所以进程3先被服务…
计算进程的几个衡量指标:
最短剩余时间优先算法:每当有进程 加入就绪队列改变时就需要调度 ,如果新到达的进程的所需的运行时间比当前运行的进程剩余时间更短,则由新进程抢占处理机,当前运行进程重新回到就绪队列。此外,当一个 进程完成时也需要调度 。
通过比较上面三组的平均周转时间、平均带权周转时间和平均等待时间可以看出,短作业优先算法可以减少进程的等待时间,对短作业有利。
高响应比优先算法: 非抢占式的调度算法 ,只有当前运行的进程主动放弃CPU时(正常/异常完成、或主动阻塞),才需要进行调度,调度时计算所有就绪进程的相应比,选响应比最高的进程上处理机。
响应比 = (等待时间 + 运行时间)/ 运行时间
上面的三种调度算法一般适用于 早期的批处理系统 ,没有考虑响应时间也不区分任务的紧急程度。因此对用户来说交互性差。
如发现错误,请指正!!!
❽ 进程调度的方式有哪两种试列举至少4种进程调度算法。
进程调度的方式有非剥夺方式和剥夺方式。
非剥夺方式:
分派程序一旦把处理机分配给某进程后便让它一直运行下去,直到进程完成或发生某事件而阻塞时,才把处理机分配给另一个进程。
剥夺方式:
当一个进程正在运行时,系统可以基于某种原则,剥夺已分配给它的处理机,将之分配给其它进程。剥夺原则有:优先权原则、短进程优先原则、时间片原则。
进程调度算法:
1、先进先出算法(FIFO):
算法总是把处理机分配给最先进入就绪队列的进程,一个进程一旦分得处理机,便一直执行下去,直到该进程完成或阻塞时,才释放处理机。
举例:有三个进程P1、P2和P3先后进入就绪队列,它们的执行期分别是21、6和3个单位时间,对于P1、P2、P3的周转时间为21、27、30,平均周转时间为26。可见,FIFO算法服务质量不佳,容易引起作业用户不满,常作为一种辅助调度算法。
2、最短CPU运行期优先调度算法(SCBF--Shortest CPU Burst First):
该算法从就绪队列中选出下一个“CPU执行期最短”的进程,为之分配处理机。
举例:在就绪队列中有四个进程P1、P2、P3和P4,它们的下一个执行进程调度期分别是16、12、4和3个单位时间,P1、P2、P3和P4的周转时间分别为35、19、7、3,平均周转时间为16。该算法虽可获得较好的调度性能,但难以准确地知道下一个CPU执行期,而只能根据每一个进程的执行历史来预测。
3、时间片轮转法:
前几种算法主要用于批处理系统中,不能作为分时系统中的主调度算法,在分时系统中,都采用时间片轮转法。简单轮转法:系统将所有就绪进程按FIFO规则排队,按一定的时间间隔把处理机分配给队列中的进程。这样,就绪队列中所有进程均可获得一个时间片的处理机而运行。
4、多级反馈队列:
多级队列方法:将系统中所有进程分成若干类,每类为一级。多级反馈队列方式是在系统中设置多个就绪队列,并赋予各队列以不同的优先权。
❾ 进程调度有哪几种方式有哪几种评价方式
进程调度的几种方式:
1、非剥夺(非抢占)调度方式:当一个进程正在处理机上执行时,即使有某个更为重要或者紧迫的进程进入就绪队列,仍然让正在执行的进程继续执行,知道该进程完成或发生某种事件而进入阻塞态时,才把处理机分配给更为重要或紧迫(优先级更高)的进程。其优点是实现简单,系统开销小,适用于大多数批处理系统,但它不能用于分时系统和大多数实时系统。
2、剥夺(抢占)调度方式:当一个进程正在处理机上执行时,若有某个更为重要或紧迫的进程(优先级更高)的进程需要使用处理机,则立即暂停正在执行的进程,将处理机分配给这个更重要的进程。这种方式对提高系统吞吐率和响应效率都有明显的好处。但抢占也要遵循一定原则。
(9)什么是进程的调度方法扩展阅读:
为了比较处理机调度算法的性能,人们提出了很多评价准则,主要有一下几种:
1、CPU利用率:CPU是计算机系统中最重要和最昂贵的资源之一,所以应该尽可能使得CPU保持忙的状态,资源利用率尽可能高。
2、系统吞吐量:单位时间内CPU完成的作业数量。长作业需要消耗较长的处理机时间,会降低系统的吞吐量。对于短作业,他们所需消耗的处理机时间较短,因此能提高系统吞吐量。调度算法和方式不同,也会对系统的吞吐量产生较大影响。
3、周转时间:周转时间是指从作业提交到作业完成所经历的时间,是作业等待、在就绪队列中排队,在处理机上运行及输入输出操作所花费的时间的总和。
4、等待时间:进程处于等处理机状态的时间之和。等待时间越长,用户满意度越低。实际上,处理机调度算法实际上并不影响作业执行或输入输出操作的时间,只影响作业在就绪队列中等待所花的时间。因此,衡量一个调度算法的优劣,常常只需简单地考察等待时间。
5、响应时间:用户提交请求到系统首次产生响应所用的时间。在交互式系统中,周转时间不可能是最好的评价准则,一般采用响应时间作业衡量调度算法的重要准则之一。从用户角度来看,调度策略应该尽量降低响应时间,使得响应时间处在用户能接受的范围之内。
❿ 进程常用的调度方式有哪三种
进程调度有以下两种基本方式:
非剥夺方式
分派程序一旦把处理机分配给某进程后便让它一直运行下去,直到进程完成或发生某事件而阻塞时,才把处理机分配给另一个进程。
剥夺方式
当一个进程正在运行时,系统可以基于某种原则,剥夺已分配给它的处理机,将之分配给其它进程。剥夺原则有:优先权原则、短进程、优先原则、时间片原则。
例如,有三个进程P1、P2、P3先后到达,它们分别需要20、4和2个单位时间运行完毕。
假如它们就按P1、P2、P3的顺序执行,且不可剥夺,则三进程各自的周转时间分别为20、24、
26个单位时间,平均周转时间是23.33个时间单位。
假如用时间片原则的剥夺调度方式,可得到:
可见:P1、P2、P3的周转时间分别为26、10、6个单位时间,平均周转时间为14个单位时间。
衡量进程调度性能的指标有:周转时间、响应时间、CPU-I/O执行期。