实时系统中的调度
实时系统是承载实时任务的系统。这些任务需要以一定的紧迫性立即执行。特别是,这些任务与控制某些事件(或)对它们作出反应有关。实时任务可以分为硬实时任务和软实时任务。
硬实时任务必须在指定的时间执行,否则可能会导致巨大的损失。在软实时任务中,可能会错过指定的截止日期。这是因为任务可以重新安排(或)可以在指定时间后完成,
在实时系统中,调度器被认为是最重要的组件,它通常是一个短期任务调度器。此调度程序的主要重点是减少与每个相关进程相关的响应时间,而不是处理截止日期。
如果使用抢占式调度器,则实时任务需要等待其对应的任务时间片完成。在非抢占式调度器的情况下,即使为任务分配了最高优先级,也需要等到当前任务完成。此任务可能很慢(或)优先级较低,并可能导致更长的等待时间。
通过结合抢占式和非抢占式调度来设计更好的方法。这可以通过在基于优先级的系统中引入基于时间的中断来完成,这意味着当前正在运行的进程在基于时间的间隔内被中断,如果就绪队列中存在更高优先级的进程,则通过抢占当前进程来执行它。
根据可调度性、实现(静态或动态)和分析结果(自有或依赖),调度算法分类如下。
- 静态表驱动方法:
这些算法通常执行与调度相关的静态分析并捕获有利的调度。这有助于提供可以指出必须在运行时开始执行的任务的计划。 - 静态优先级驱动的抢占方法:
与第一种方法类似,这些类型的算法也使用调度的静态分析。不同之处在于,它提供了一种在抢占式调度中在各种任务之间分配优先级的有用方法,而不是选择特定的调度。 - 基于动态规划的方法:
在这里,可行的计划是动态识别的(在运行时)。它带有一定的固定时间间隔,当且仅当满足时间约束时执行一个过程。 - 动态尽力而为方法:
这些类型的方法考虑截止日期而不是可行的时间表。因此,如果到了最后期限,任务就会被中止。这种方法在大多数实时系统中被广泛使用。