进程调度

来源:互联网 发布:海康网络球机接线图解 编辑:程序博客网 时间:2024/06/06 02:41
多道程序环境下,进程数目往往多于处理机数目,致使它们争用处理机。这就要求系统能按某种
算法,动态地把处理机分配给就绪队列中的一个进程,使之执行。分配处理机的任务是由进程调度程序
成的。它是操作系统设计的中心问题之一。
程调度的基本概念

    三角箭头.GIF (188 bytes)高级、中级和低级调度
        个作业从提交开始直到完成,往往要经历下述三级调度:
        L紫色P.GIF (154 bytes)高级调度:(High-Level Scheduling)又称为作业调度,它决定把后备作业调入内存运行;
        L黄色P.GIF (158 bytes)低级调度:(Low-Level Scheduling)又称为进程调度,它决定把就绪队列的某进程获得CPU;
        LREDP.GIF (158 bytes)中级调度:(Intermediate-Level Scheduling)又称为在虚拟存储器中引入,在内、外存对换
                    区进行进程对换。
    三角箭头.GIF (188 bytes)进程调度方式
        进程调度有以下两种基本方式:

非剥夺方式

    分派程序一旦把处理机分配给某进程后便让它一直运行下去,直到进程完成或发生某事件而阻塞时,才把处理机分配给另一个进程。

剥夺方式

    当一个进程正在运行时,系统可以基于某种原则,剥夺已分配给它的处理机,将之分配给其它进程。剥夺原则有:优先权原则短进程优先原则时间片原则
        例如,有三个进程P1、P2、P3先后到达,它们分别需要20、4和2个单位时间运行完毕。
        假如它们就按P1、P2、P3的顺序执行,且不可剥夺,则三进程各自的周转时间分别为20、24、
    26个单位时间,平均周转时间是23.33个时间单位。
        假如用时间片原则的剥夺调度方式,可得到:

0

 

2

 

4

 

6

 

8

 

10

 

12

     

26

P1

P2

P3

P1

P2

P1

P1

...

P1

2

2

2

2

2

16

        可见:P1、P2、P3的周转时间分别为26、10、6个单位时间,平均周转时间为14个单位时间。
        衡量进程调度性能的指标有:周转时间响应时间CPU-I/O执行期

程调度算法
    三角箭头.GIF (188 bytes)先进先出算法
        算法总是把处理机分配给最先进入就绪队列的进程,一个进程一旦分得处理机,便一直执行
    下去,直到该进程完成或阻塞时,才释放处理机
        例如,有三个进程P1、P2和P3先后进入就绪队列,它们的执行期分别是21、6和3个单位时间,
    执行情况如下图:

0

 

21

 

27

 

30

P1

P2

P3

21

6

3

        对于P1、P2、P3的周转时间为21、27、30,平均周转时间为26。
        可见,FIFO算法服务质量不佳,容易引起作业用户不满,常作为一种辅助调度算法。
    三角箭头.GIF (188 bytes)最短CPU运行期优先调度算法(SCBF--Shortest CPU Burst First)
        该算法从就绪队列中选出“下一个CPU执行期”最短的进程,为之分配处理机
        例如,在就绪队列中有四个进程P1、P2、P3和P4,它们的下一个执行期分别是16、12、4和3
    个单位时间,执行情况如下图:

0

 

3

 

7

 

19

 

35

P4

P3

P2

P1

3

4

12

16

        P1、P2、P3和P4的周转时间分别为35、19、7、3,平均周转时间为16。
        该算法虽可获得较好的调度性能,但难以准确地知道下一个CPU执行期,而只能根据每一个进程
    的执行历史来预测。
    三角箭头.GIF (188 bytes)最高优先权(FPF)优先调度算法
        该算法总是把处理机分配给就绪队列中具有最高优先权的进程。常用以下两种方法来确定进程的
    优先权:

静态优先权

   静态优先权是在创建进程时确定的,在整个运行期间不再改变。
依据有:
进程类型进程对资源的要求用户要求的优先权

动态优先权

   动态优先权是基于某种原则,使进程的优先权随时间改变而改变。
    三角箭头.GIF (188 bytes)轮转法
        前几种算法主要用于批处理系统中,不能作为分时系统中的主调度算法,在分时系统中,都采用
    时间片轮转法
        LBULEP.GIF (159 bytes)简单轮转法:系统将所有就绪进程FIFO规则排队,按一定的时间间隔把处理机分配给队列
                      中的进程。这样,就绪队列中所有进程均可获得一个时间片处理机而运行。
        多级队列方法:将系统中所有进程分成若干类,每类为一级。
    三角箭头.GIF (188 bytes)多级反馈队列
        多级反馈队列方式是在系统中设置多个就绪队列,并赋予各队列以不同的优先权

程调度的实现
    三角箭头.GIF (188 bytes)引起进程调度的原因
        正在执行的进程执行完毕或因发生某事件而不能再继续执行;
        执行中的进程因提出I/O请求而暂停执行;
        在进程通信或同步过程中执行了某种原语操作如P操作阻塞挂起原语等;
        在可剥夺式调度中,有比当前进程优先权更高的进程进入就绪队列;
        时间片轮转法中,时间片完;
        通常系统是按先来先服务优先权形式来组织调度队列。
    三角箭头.GIF (188 bytes)进程调度算法
其中,RQ为就绪队列指针,EP为运行队列指针


SPLIT.GIF (3216 bytes)

本概念
    高级调度:它用于确定把后备队列上的哪些作业调入内存。
    
    低级调度:指在多道程序环境下,内核按一定的调度算法,从就绪队列中选出一进程,把处理机              分配给它。 
    
    中级调度:核心按一定的调度算法,将内存中处于等待状态的某些进程调至外存对换区,来腾空              这部分内存。  
    
    周转时间:从提交开始到完成为止的时间间隔。
    
    响应时间:从提交一个请求到首次产生响应的时间间隔。
    
    CPU-I/O执行期:进程在运行时,交替地处于两种工作状态:CPU忙和I/O忙。
0 0
原创粉丝点击