您的位置:首页 > 其它

操作系统概念(高等教育出版社,第七版)复习——第五章:CPU调度

2017-06-16 11:08 211 查看
第五章 CPU调度

基本概念

如果一种CPU调度方式将一个CPU执行期分割成多个CPU执行期,那么这种调度方式就属于抢先式调度(抢占、剥夺)。在分时系统中。

如果一种CPU调度方式仅在一个进程执行完其一个CPU执行期时才引起进程调度,则这种调度方式属于非抢先式调度(非抢占、非剥夺)。在多任务系统IO中。

运行-->等待、运行-->终止:非抢占

运行-->就绪、等-->就绪、新的-->就绪:抢占

调度准则

CPU使用率:需要使CPU尽可能忙。

吞吐量:如果CPU忙于执行进程,那么就有工作在完成。吞吐量:一个单元内所完成的进程数量。

周转时间:从进程提交到进程完成的时间段。

等待时间:CPU调度算法不影响进程运行和执行IO的时间:它只影响进程在就绪队列中等待所花的时间。等待时间为在就绪队列中等待所花费时间之和。

响应时间:从提交请求到产生第一响应的时间。是开始响应所需要的时间,而不是输出相应所需要的时间。

调度算法

先到先服务(FCFS):

优缺点:

公平;可能会产生护航效应,使CPU和设备的使用率变得更低;有利于长作业,对短作业不利,系统吞吐量小;进程到达顺序对调度性能影响很大。

最短作业优先调度(SJF):

又称为:最短剩余时间优先调度(看结束时就绪队列里有什么,选择最短的执行,相同短的选择先进来的先执行)。

优缺点:

系统吞吐量大,平均周转时间短;有利于短作业,不利于长作业;如果采用抢先式调度,下一个CPU周期的长度无法精确获得,只能采用预测的方法;

可能产生饥饿效应,长进程可能永远不会被执行。

优先级调度:

主要问题:无穷阻塞或饥饿。

解决办法:老化:逐渐增加在系统中等待很长时间的进程的优先级。

当一个服务时间比较长的进程等待时一段时间后,也可以有调度的机会。该算法既照顾了短作业,有考虑了作业到达的先后次序,也还不会使长作业长期得不到服务。防止出现FCFS中长进程出现饥饿现象。

轮转法调度:

类似于FCFS调度,但是增加了抢占以切换进程。定义一个较小的时间单元,称为时间片。将就绪队列作为循环队列。若进程小于时间片,进程本身自动释放CPU,若大于时间片,调度程序接着处理就绪队列的下一个进程。

时间片应比上下文切换时间长,但也不能太大。如果太大就成了FCFS。根据经验,80%的CPU区间应该小于时间片。

多级队列调度:

将就绪队列分成多个独立队列,根据进程属性,每个进程都被永久分配到一个队列,每个队列都有自己的调度算法。每个队列与更低层队列相比有绝对的优先级,高优先级队列为空,才能调度低优先级队列。

多级反馈队列调度:

允许进程在队列之间移动。如果进程使用过多CPU时间,它会被转移到更低优先级队列,在较低优先级队列中等待时间过长的进程会被转移到更高优先级队列,这种形式的老化阻止饥饿的发生。

作业

1.

I/O约束程序通常具有很多短CPU区间,CPU约束程序可能有少量的长CPU区间,这种分布有助于选择合适的CPU调度算法,提高CPU利用率。

4.

a.

FCFS:P1 P2 P3 P4 P5

0 10 11 13 14 19

SJF:P2 P4 P3 P5 P1

0 1 2 4 9 19

非抢占优先级:P2 P5 P1 P3 P4

0 1 6 16 18 19

RR:P1 P2 P3 P4 P5 P1 P3 P5 P1 P5 P1 P5 P1 P5 P1 P1 P1 P1 P1

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

b.

FCFS SJF 非抢占优先级 RR

P1 10 19 16 19

P2 11 1 1 2

P3 13 4 18 7

P4 14 2 19 4

P5 19 9 6 14

c.

FCFS SJF 非抢占优先级 RR

P1 0 9 6 9

P2 10 0 0 1

P3 11 2 16 5

P4 13 1 18 3

P5 14 4 1 9

d.

SJF

5.

最短作业优先调度和优先级调度

10.

FCFS:如果短进程在长进程执行时到达则会有很长的等待时间

RR:所有进程的CPU区间一样,短进程有较大可能先执行完

多级反馈队列:优先级高的前台队列使用RR,短进程执行情况与RR相同

思考题:

1.

饥饿的概念:在优先级调度算法里,优先级低的进程可能永远不会被执行,这称之为饥饿效应。

2.

非抢占式调度:运行à等待,运行à终止

抢占式调度:运行à就绪,等待à就绪,newà就绪,就绪à运行

3.

各调度算法的基本思想、优点及缺点:

FCFS:

基本思想:先到先服务。

优点:公平、有利于长作业。

缺点:会产生护航效应、对短作业不利、系统吞吐量小、进程到达顺序对性能影响较大。

SJF:

基本思想:最短CPU区间的进程优先。

优点:系统吞吐量大、平均周转时间短、性能最佳、有利于短作业。

缺点:不利于长作业、采用抢先式调度时下一个CPU周期的长度无法精确获得只能预测。

优先级调度:

基本思想:优先级高的进程优先。

优点:灵活。

缺点:无穷阻塞或饥饿效应,即优先级低的进程有可能永远不被执行,可用老化的方式解决。

RR:

基本思想:在定义好的时间片中为进程分配CPU,执行完一个时间片或进程检查一次。

优点:不会出现饥饿现象。

缺点:上下文切换时间长。

多级队列调度:

基本思想:将就绪队列分成多个独立队列,高级队列比低级队列有绝对优先级。

优点:在进程可容易地分成不同组的情况下方便。

缺点:高级队列空时低级队列才能运行,会出现饥饿现象。

多级反馈队列调度:

基本思想:高级队列比低级队列有优先级,但不是绝对的。

优点:比多级队列调度灵活,防止饥饿现象。

缺点:算法复杂。

ExampleMultilevel Feedback Queues:

Gantt图:

P1 P2 P3 P1

0 8 11 14 30

进程等待时间 周转时间

P1 6 30

P2 8 11

P3 11 14
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐