处理机调度与作业调度

处理机调度

一个批处理型作业,从进入系统并驻留在外存的后备队列上开始,直至作业运行完毕,可能要经历如下的三级调度

高级调度

也称为作业调度、长程调度、接纳调度。调度对象是作业

主要功能:

        ·挑选若干作业进入内存

        ·为作业创建进程、分配必要的资源

        ·将新创建的进程插入就绪队列,准备执行

高级调度只有多道批处理操作系统中才有,分时和实时两种类型的OS中无需配置

高级调度运行频率较低,作业调度的周期较长,往往是一个或一批作业运行完毕才结束

中级调度

也称为内存调度

主要功能:

        ·实现进程的内外存切换

        ·实现进程的挂起与非挂起状态切换,即活动和静止状态的切换

中级调度实际上就是存储器管理中的对换功能

中级调度运行频率介于低级调度和高级调度之间 

低级调度 

也称为进程调度、短程调度。调度对象是进程

主要功能:

        ·决定就绪队列中的那个进程获得处理机

        ·分配器(分配程序)执行把处理机分配给进程的具体操作

在多道批处理系统、分时和实时三种类型的OS中,都必须配置

低级调度的运行频率最高,一般进程调度算法不宜设计的太复杂

处理机调度算法的目标是提高资源利用率

CPU利用率=CPU有效工作时间/CPU总运行时间

CPU总运行时间=CPU有效工作时间+CPU空闲等待时间

一般使用周转时间的长短来评价批处理系统的性能

周转时间:作业提交给系统到作业完成的时间间隔

带权周转时间:周转时间/服务时间

作业调度

作业调度的主要任务有两个:①决定接纳多少作业②决定接纳那些作业

决定接纳多少作业:取决于多道程序度,即允许多少个作业同时在内存中允许

决定接纳那些作业:取决于调度算法

先来先服务调度算法

系统按照作业到达的先后次序进行调度。在就绪队列中等待时间越长的作业,优先级越高

可见进程先后进入内存的顺序为:P1-P2-P3-P4-P5。因此处理机也按照该顺序服务

CPU服务示意图
创建时刻运行时间CPU开始服务时间结束服务时间周转时间
P103033-0=3
P226399-2=7
P34491313-4=9
P465131818-6=12
P582182020-8=12

短作业优先调度算法

为了尽可能完成更多的作业,出现了短作业优先。作业所需服务时间越短,优先级越高

可见进程先后进入内存的顺序为:P1-P2-P3-P4-P5。按照运行时间长短排序为:P5-P1-P3-P4-P2

因此当进程P1执行完毕后,只有P2进程创建,因此执行进程P2。当P2执行完毕时(第9ms),进程P3、P4、P5都已经创建完毕,在就绪队列中排序。由于是短作业优先,因此优先执行进程P5,其次是P3,最后是P4

创建时刻运行时间CPU开始服务时间结束服务时间周转时间
P103033
P226397
P344111511
P465152014
P5829113

高响应比优先调度算法

高响应比优点调度算法即考虑作业的等待时间,也考虑作业的服务时间。兼顾短作业,也不使长作业等待时间过长

优先权计算方式:

priority=1+\frac{WaitTime}{ServiceTime}

其中WaitTime是等待时间,ServiceTime是要求服务时间,priority是优先权

优先权越大,越先进行服务

由上述公式可以看出①如果作业等待时间相同,则要求服务时间越短,优先权越高②如果要求服务时间相同,则等待时间越长,优先权越高③对于长作业而言,等待的时间越久优先权也高,也能获取处理机资源

 可见进程先后进入内存的顺序为:P1-P2-P3-P4-P5

当进程P1执行完毕后,只有P2进程创建,因此执行进程P2。当P2执行完毕时(第9ms),进程P3、P4、P5都已经创建完毕,在就绪队列中排序。此时计算每个进程的响应比,分别为2.25、1.6、1.5。因此优先执行进程P3。P3执行完毕时(第13ms),计算进程P4、P5的响应比,分别为2.4和3.5。因此优先执行进程P5,最后执行进程P4

创建时刻运行时间CPU开始服务时间结束服务时间周转时间
P103033
P226397
P3449139
P465152014
P58213157

轮转调度算法

轮转调度算法让就绪队列上的每个进程每次仅允许一个时间片,如果就绪队列上有n个进程,则每个进程每次都可以获得1/n的处理机时间

轮转调度算法中最重要的就是时间片的选择。如果时间片小,会频繁执行进程调度和进程上下文切换,导致系统开销增加;如果时间片太长,导致每个进程在一个时间片内完成,使轮转调度算法退化成先来先服务算法,无法满足用户需求

下图为轮询的过程,在进程创建之前不进入轮转。在程序运行结束后,退出轮转序列

第一轮P1
第二轮P1(第2ms,进程P2创建)P2
第三轮P1(第4ms,进程P3创建,进程P1运行结束)P2P3(第6ms,进程P4创建)P4
第四轮P2(第8ms,进程P5创建)P3P4P5
第五轮P2P3P4P5(第15ms,进程P5运行结束)
第六轮P2P3(第17ms,进程P3运行结束)P4
第七轮P2(第19ms,进程P2运行结束)P4(第20ms,进程P4运行结束)
创建时刻运行时间CPU开始服务时间结束服务时间周转时间
P103044
P22631917
P34461713
P46572014
P58211157

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
操作系统中的调度算法是为了有效地利用处理机资源,合理分配任务,提高系统的运行效率和响应速度。下面我将介绍一些常见的调度算法。 首先是先来先服务(FCFS)调度算法,按照任务的到达顺序进行调度,先到达的任务先执行。这种算法简单直接,但可能导致后来的短任务等待时间较长,称为“饥饿”问题。 其次是最短作业优先(SJF)调度算法,根据任务的执行时间进行调度,执行时间短的任务优先执行。这种算法能够最小化任务的平均等待时间,但对于长任务可能会出现“饥饿”问题。 另一种常见的调度算法是优先级调度,给每个任务分配一个优先级,优先级高的任务先执行。这种算法能够根据系统需求和任务优先级来合理分配任务,但需要合理设置任务的优先级。 另外,还有循环调度(Round-Robin)算法,将处理机的使用权按照时间片轮流分配给各个任务。这种算法能够保证每个任务都能得到一定的处理时间,但可能导致长任务的执行时间较长。 最后是多级反馈队列(MLFQ)调度算法,将任务分为多个队列,根据任务的优先级和执行时间将任务依次插入对应的队列中。这种算法既能够保证任务的响应速度,又能够合理利用处理机资源。 总之,操作系统的调度算法是为了合理调度任务,提高系统的运行效率和响应速度。不同的算法适用于不同的场景和需求,我们需要根据实际情况选择合适的算法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值