实时系统调度方法

5.6 实时系统调度方法

随着移动通信和网络计算技术的发展,实时系统正变得越来越重要。操作系统是实时系统中最重要的部分之一。它负责在用户要求的时限内进行事件处理和控制。

5.6.1 实时系统的特点

   随着移动通信和网络计算技术的发展,实时系统正变得越来越重要。操作系统是实时系统中最重要的部分之一。它负责在用户要求的时限内进行事件处理和控制。实时系统与其他系统的最大区别在于,其处理和控制的正确性不仅仅取决于计算的逻辑结果,而且取决于计算和处理结果产生的时间。因此,实时系统的调度与工业生产中的生产过程调度有许多相同之处,即把给定的任务,按所要求的时限调配到相应的设备上去处理完成。

   根据对处理外部事件的时限(deadlines)要求,实时系统中处理的外部事件可分为硬实时任务(hard real time task)软实时任务(soft real time task)。硬实时任务要求系统必须完全满足任务的时限要求。软实时任务则允许系统对任务的时限要求有一定的延迟,其时限要求只是一个相对条件。

   实时系统的另一个特点是它所处理的外部任务可分为周期性的与非周期性的两大类。对于非周期性任务来说,必定存在有一个完成或开始进行处理的时限,而周期性任务只要求在周期T内完成或开始进行处理,一般来说,实时操作系统具有以下特点:

(1)有限等待时间(决定性)
(2)
有限响应时间
(3)
用户控制
(4)
可靠性高
(5)
系统出错处理能力强

   与分时系统的多个进程并发执行相比,分时系统中并发执行的进程具有不确定性,其执行顺序与执行环境有关。实时系统则不然,它要求所有的进程在处理事件时,都必须在有限时间内开始处理。这一特性又被称为实时系统的决定性特性。

   实时系统的有限响应时间特性是指从系统响应外部事件开始,必须在有限时间内处理完毕。另外,在分时系统的非实时系统中,用户不能参与对进程调度的控制。在实时系统中,用户可以控制进程的优先级并选择相应的调度算法,从而达到对进程执行先后顺序的控制。实时系统要求很高的可靠性。在分时系统的非实时系统中,用户可以用重新启动计算机等措施来处理系统出错。但是,实时系统主要是对外部事件进行处理和控制,例如导弹系统的控制,这样的系统不允许出现控制错误。

   另外,当系统发生错误时,实时系统不能像非实时系统那样,先停止当前处理的用户程序,转去执行出错处理或使系统自动退出。实时系统要求系统在出错时,既能够处理所发生的错误,又不影响当前正在执行的用户应用。

   实时系统的上述特性要求实时操作系统具有下述能力:

(1)很快的进程或线程切换速度
进程或线程切换速度是实时系统设计的核心。与分时系统不同,公平性以及最小平均响
应时间等指标在实时系统中并不重要,实时系统中调度算法的设计原则是满足所有硬实时
任务的处理时限和尽可能多地满足软实时任务的处理时限。
(2)快速的外部中断响应能力
有关中断处理和响应的详细介绍,将在第8章中给出,不过,只有对外部中断信号反应
迅速,系统才能对外部事件作迅速反应。
(3)基于优先级的随时抢先式调度策略

基于优先级的调度策略大致有以下4种。即:
优先级+时间片轮转调度策略;
基于优先级的非抢先式调度策略;
基于优先级的固定点抢先式调度策略;
基于优先级的随时抢先式调度策略。

   对于调度策略①来说,因为调度必须在时间片到来时才能发生,实时进程必须等待占有处理机的进程执行到时间片结束时才能获得处理机。因此,这种方法不能用作实时调度。同理,基于优先级的非抢先式调度策略也不能用作实时调度,因为高优先级的实时进程,只有在当前执行进程自动让出处理机之后,才能获得处理机。基于优先级的固定点抢先式调度方式与基于优先级的随时抢先式调度策略是实时系统的主要调度策略。基于优先级的固定点抢先式调度方式与优先级+时间片轮转调度方式有相似之处,其主要区别在于允许抢先的固定点间隔要比时间片小得多,并保证能满足所有硬实时的处理时限。

5.6.2 实时调度算法的分类

1.       静态表调度算法(Static table-driven scheduling):适用于周期性的实时应用。通过对所有周期性任务的分析预测(到达时间、运行时间、结束时间、任务间的优先关系),事先确定一个固定的调度方案。这种方法的特点是有效但不灵活。

2.       静态优先级调度算法(Static priority-driven scheduling):把通用的优先级调度算法用于实时系统,但优先级的确定是通过静态分析(运行时间、到达频率)完成的。

3.       动态分析调度算法(Dynamic planning-based scheduling):在任务下达后执行前进行调度分析,要求满足实时性要求。

4.       无保障动态调度算法(Dynamic best effort scheduling):在任务下达时分配优先级,开始执行,在时限到达时未完成的任务被取消。用于非周期性任务的实时系统。

5.6.3 时限调度算法与频率单调调度算法

   时限调度算法是一种以满足用户要求的时限为调度原则的算法。在实时系统中的用户要求时限有两种,即处理开始时限(stating deadline)和处理结束时限(ending deadline)。时限调度算法可以使用任一种时限。时限调度算法不可用于周期性调度与非周期性调度两种。

  时限调度算法所需要的相关输入信息包括以下几种:
(1)任务就绪时间或事件到达时间
任务就绪时间或事件到达时间,指的是进程进入就绪状态,可以被调度执行的时间。对
于周期性任务来说,该时间是可以预知的,而且时间间隔是周期性的。对于非周期性任务来
说,这些时间可能是可预知的,但大部分时候是不可预知的,需要事件发生来驱动。
(2)开始时限
开始时限指的是:处理机必须开始对任务进行处理的时限。
(3)完成时限
指的是任务必须完成的时间
(4)处理时间
处理时间指的是:完成相关任务所需占用处理机的时间。
(5)资源需求
除了处理机之处,另外还需要的其他硬软件资源。如果所处理的任务有处理机之外的其
他资源需求,则调度算法要相对复杂得多。
(6)优先级
优先级可由分析计算后获得,也可根据时限要求,由用户指定。

   时限调度算法的基本思想是:按用户的时限要求顺序设置优先级,优先级高者占据处理机,也就是说,时限要求最近的任务优先占有处理机。

   时限调度是抢先式的。抢先式时限调度算法必须把新到达任务的时限要求和当前正在执行任务的时限要求进行比较,如果新到达任务的时限要求更近,则应执行新到达的任务。

   下面是一个使用时限调度算法调度周期性实时任务的例子。
设实时系统从两个不同的数据源DADB周期性地收集数据并进行处理,其中DA的时限要求以30 ms为周期,DB的时限要求以75 ms为周期。设DA所需处理时限为15msDB所需处理时限为38ms,则与DADB有关进程的事件发生时限(就绪时限),执行时限以及结束时限如图5. 11所示

 

5.11周期性任务的预计发生,执行与结束时限

   如果使用时限调度算法,并按最近结束时限优先级最高的方法进行排列,可以给出图5. 11所示各进程的调度顺序和相对时间。(如图5. 12)

5.12 时限调度算法给出的调度顺序


   如图5. 12所示,在开始时,进程DA(1)DB(1)的结束时限比较结果,DA(1)的结束时限最近,从而调度进程DA(1)执行。DA(1)的实际结束时间为15,小于30的时限要求。紧接着,进程DB(1)被调度执行。在执行到时间为30ms时,进程DA(2)进入就绪状态。由于DA(2)的结束时限为60,近于DB(1)的结束时限75,从而DB(1)DA(2)抢先。DA(2)的实际结束时间为45,小于要求时限60

   在DA(2)结束之后,DB(1)再次占有处理机继续执行,当DB(1)执行到时间为60ms时,进程DA(3)进入就绪状态。但是,由于DA(3)的结束时限为90,远于DB(1)的结束时限75,从而DB(1)继续执行。

   时限调度算法也可以用于非周期性任务调度。频率单调调度算法是一种被广泛用于多周期性实时处理的调度算法。频率单调调度算法的基本原理是频率越低(周期越长)的任务的优先级越低。另外,设任务周期问题,任务的执行时间为C,则使用频率单调调度算法的必要条件是 C<=T。已经证明,对于n(n1)个周期的不同任务来说,设每个周期为Ti,其相应任务的执行时间为Ci,则使用频率单调调度算法的充分条件是:

.

   例如,对于由3个周期组成的实时任务序列来说,其执行时间与周期之比应是:

.

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值