实时调度是针对
嵌入式系统特点的一种任务调度策略,旨在提高系统性能。
RTOS系统在生产生活中广泛应用,其正确性不仅取决于程序逻辑,还取决于结果产生的时效性。实时系统可分为软实时和硬实时两类,后者对响应时间有严格要求。实时调度包括单处理器、多处理器和分布式处理器等多种形式,其中动态调度如EDF和LLF能够实现100%的处理器利用率。
实时系统在指定响应时间内提供所需服务水平,其正确性不仅涉及程序逻辑正确性,还包括结果产生的时间。硬实时系统要求确保最坏情况下的服务时间,而软实时系统则是从
统计学角度看,任务能够得到确保的处理时间,但违反截止期限不会导致严重错误。实时调度可分为静态调度和动态调度,以及单处理器、集中式多处理器和分布式处理器调度。此外,还有抢占式调度和不可抢占式调度。
RTOS系统按照实时性要求分为软实时和硬实时两类。硬实时系统要求无论何种情况下均需满足响应时间截止期限,如航天领域的宇宙飞船控制系统。软实时系统则从统计学角度来看待任务处理时间和响应时间,如实时
多媒体系统。根据调度表建立和可调度性分析的方式,实时调度还可分为静态调度和动态调度。静态调度通常基于RMS算法,而动态调度则以EDF和LLF为主。按系统分类,实时调度可分为单处理器调度、集中式多处理器调度和分布式处理器调度。按任务是否可抢占,可分为抢占式调度和不可抢占式调度。
单处理器实时调度的问题描述为,任务集S中各任务的周期、执行时间和截止日期均为已知,且任务可被抢占。CPU利用率U不超过1是任务集可调度的前提条件。RMS(Rate-Monotonic Scheduling)调度算法是一种静态固定优先级分配的调度算法,适用于单处理器下的最优静态调度。RMS算法通过计算系统资源利用率来进行任务可调度性分析,算法简单有效。然而,RMS算法的处理机利用率较低,在最坏情况下不超过70%,这成为许多实时应用的限制。动态调度算法如EDF和LLF能够实现100%的处理器利用率。
RMS算法的任务模型为周期性任务,优先级与其周期成反比。优先级高的任务具有更高的优先权。可调度性分析可通过计算系统资源利用率来进行。RMS算法已被证明是静态最优调度算法,但在一般情况下,对于随机的任务集约有88%的处理器利用率。非周期任务的调度可以通过延迟服务器算法或随机服务器算法进行,这两种算法都将非周期任务转化为周期任务后再进行调度。EDF算法是一种动态调度算法,其优先级根据任务的截止时间动态分配。EDF算法已被证明是动态最优调度,且是充要条件。LLF算法也是动态调度算法,其优先级根据任务的空闲时间动态分配。EDF和LLF算法在每个调度时刻都需要计算任务的截止时间或空闲时间,因此开销较大,不易实现。
多处理器实时调度可分为静态调度和动态调度。静态调度包括基本调度(BS)、可抢占调度(PS)和广义调度(GS)。PS和GS的最小计算时间
相等,且PS在实际中可实现。动态调度的目标是对变化的环境做出快速反应。在l-c空间中,任务可以按EDF和LLF调度算法调度,但由于多处理器下EDF和LLF不是最优算法,因此在动态调度中不存在最优算法。
分布式实时调度算法可分为两类:以RMS为基础的广义RMS调度(GRMS)和以风车调度Sr为基础的DSr调度。GRMS将RMS应用于分布式实时系统,对RMS的概念进行了扩展,并引入了一些新概念。DSr调度算法基于分布式任务集合和网络节点上的任务执行时间,选择最小总密度的划分基作为系统的划分基础。