(笔记)一、常用的实时调度方法

目录

1.时钟驱动调度方法

2.加权轮转调度方法

2.1应用场景

2.2加权轮转调度的缺点及优点

3.优先级驱动调度方法


本文简要介绍最近学习的三种常用实时系统的系统调度方法:时钟驱动(Clock-Driven/Time-Driven)调度、加权轮转(Weighted round-robin)调度、优先级驱动(Priority-Driven)调度。先了解这几个方法的原理,后续博客将深入对这三种方法进行展开。

1.时钟驱动调度方法

Clock-Driven schdule是指系统在开始执行之前,选择一些特定时刻,在这些时刻决定哪一个作业在何时执行。在一个典型的使用时钟驱动的调度方法系统里,所有的强实时作业的参数都是固定的并且是已知的。作业的调度表脱机计算并保存,然后在运行时使用。

通常选择在有规律的空白时刻做出调度决策,一种方法是用硬件定时器来实现周期性做出调度的决策。

2.加权轮转调度方法

此调度方法常常用于调度分时应用。所有被调度的作业加入FIFO队列,位于队列头的作业将最多执行一个时间片,时间片结束,该作业就被抢占然后放置队列尾部,等待下一轮调度。队列里n个作业,每个作业在n个时间片上都能获得一个时间片,这就是一轮。

2.1应用场景

加权轮转调度算法曾被用于高速交换网中的实时通信调度。这个算法不是让所有的就绪作业平等地共享处理器,而是给不同的作业以一个不同的权值。特别地,一个权值为wt的作业每轮获得wt个时间片。一轮的长度是所有就绪作业的权值之和。通过调整作业的权值,能够加速或者延迟每个作业完成的进度。

2.2加权轮转调度的缺点及优点

由于轮转调度程序给每个作业以一段处理器时间,因此它延迟了每个作业的完成时间。如果用它来调度受优先约束的作业,对作业链的执行时间和实时性将受到很大的影响。因此轮转调度是不适合调度此类作业的,另一方面,继任的作业可能会递增地消费前任所产生的结果(例如UNIX系统中的管道)。要想在这种情况下使用加权轮转调度就必须考虑调度顺序以及处理器的分配。如图(J1,1是J1,2的前驱,J2,1是J2,2的前驱。),图(a)是作业可以在4时刻完成,图(b)对图(a)做了进一步调整,使得所有作业在时刻3完成。

实际上,交换机是以管道方式实现每一个消息传输的。一旦接收到消息的前一部分,那么下游交换机就可以开始该消息的处理和传输,不必等到消息的下一部分到达才开始计算。加权轮转调度只需要一个轮转队列,不需要按照优先级排序的队列。对于超高速网络消息传输,这是一个优点。

3.优先级驱动调度方法

优先级驱动算法是指不会有意使资源处于空闲状态的一大类调度算法。也即是说,资源只在需要该资源的作业没有就绪可执行时才能处于空闲状态。在作业释放和完成等事件发生时,才做出调度决策。因此优先级驱动算法是事件驱动算法。

在这里明确一下概念,一下几个概念可以认为等同:优先级驱动调度算法(Priority-Driven Scheduling) = 列表调度算法(List Scheduling)= 贪心调度算法(Greedy Scheduling)= 保持工作调度算法(Work-conserving Scheduling)。为什么说优先级驱动调度算法是贪心的呢?是因为,它总是尽力做出局部最优的决策,这种最优不会让作业等待。当然,贪心有时候并不总是合算的,稍后会加以说明。

非实时系统中所用的大部分调度算法都是优先级驱动的。例如,FIFO,LIFO,SETF(Shortest Execution Time First),LETF(Longest Execution Time First)。因为可以改变作业的优先级,所以甚至可以将轮转调度看作是优先级驱动的。

如下图是一个典型的优先级驱动的调度,这个例子中包含前驱关系,所有边代表优先次序约束,作业名之后的数字代表执行时间,其中J5的释放时刻是4,其他作业释放时间是0。括号里面表示优先级次序,1-8优先级依次降低。a、b图分别画出了抢占模式和非抢占模式下的调度时序图情况。

一般来说,抢占的调度优于非抢占的调度。一个基本的问题是什么时候抢占调度优于非抢占的调度?什么时候又相反?遗憾的是,这个问题没有答案。

在作业具有相同的施放时间这种特殊情况下,当抢占的开销可以忽略,抢占调度优于非抢占调度。

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值