RTOS主要分为两种类型:强实时(hard real-tlme)系统和弱实时(soft real-time)系统。
强大的实时系统广泛应用于航空航天,军事,核工业和其他领域;弱实时系统用于视频点播系统,信息收集和检索系统等应用。
(1)约束RTOS任务的约束包括时间约束,资源约束,执行顺序约束和性能约束。
RTOS的任务是有时限的。
时间约束是任何RT0S的固有约束。
时间约束可分为硬实时和软实时。
硬实时是指在航空航天,军事和核工业等一些关键领域中使用的系统。
必须完全满足时间要求或不可预测的结果。
软实时通常意味着在某些应用中,例如监控系统和信息收集系统,存在时间限制,但偶尔的违规行为不会造成严重影响。
资源约束意味着当多个实时任务共享有限资源时,它们必须根据某些资源访问控制协议进行同步,以避免低优先级任务(即优先级反转时间)阻塞死锁和高优先级任务的时间。
不可预测。
执行顺序约束意味着每个任务的启动和执行必须满足特定的时间和顺序约束。
例如,在分布式端到端实时系统中,在同一任务的子任务之间存在前驱或后续约束关系,并且需要执行同步协议来管理子任务的启动和控制子任务。
执行以满足时间限制和系统可调度性要求。
性能约束是指性能指标,如可靠性,可用性,可预测性和服务质量(QoS)。
(2)可预测性可预测性意味着应该知道RTOS完成实时任务所需的执行时间。
可预测性是RTOS的重要性能要求。
可预测性包括硬件延迟的可预测性和软件系统的可预测性(包括应用程序的响应时间是可预测的以及操作系统的可预测性)。
在各种基于任务的RTOS中,不仅包括周期性任务,不常见任务,非循环任务,还包括非实时任务。
多种类型任务的混合使得系统的可调度性和可预测性分析更加困难。
(3)可靠性大多数RTOS要求高可靠性,要求系统正常工作或避免在最坏情况下造成损失。
可靠性是RTOS的重要性能指标。
(4)交互性外部环境是RTOS中不可或缺的一部分,RTOS通常是受控子系统。
嵌入式计算机系统通常用作控制系统,并且必须在指定时间内响应来自受控子系统的请求。
受控子系统还必须能够正常工作或能够对任何异常行为采取措施。
这两者相互作用形成一个完整的实时系统。
给定一组实时任务和系统资源,确定每个任务执行的时间和位置的整个过程是一个时间表。
在RTOS中进行调度的目的是确保每个任务尽可能满足其时间限制,并及时响应外部请求。
RTOS调度技术通常以下列两种方式使用。
(1)抢占式调度和非抢占式调度抢先式调度通常是优先级驱动的调度。
每个任务都有一个优先级,并且首先执行最高优先级和已启动的任务。
抢先式调度具有良好的实时性和快速响应。
调度算法相对简单,可以优先保证高优先级任务的时间约束。
缺点是有许多上下文切换。
非抢占式调度意味着在执行期间不允许中断任务。
如果微处理器在任务1中被占用,则必须执行或自愿放弃。
优点是上下文切换很小,缺点是微处理器的有效资源利用率低,调度性能不好。
(2)静态表驱动策略和优先级驱动策略静态表驱动策略是一种离线调度策略。
它指的是在运行系统之前每个任务的时间约束和关联关系。
某种搜索策略用于生成运行计划。
系统运行时,调度程序只需根据此时间表启动相应的任务。
优先级驱动策略是指根据任务的优先级确定任务的执行顺序。
优先级驱动策略进一步分为静态优先级调度策略和动态优先级调度策略。
静态优先级调度意味着在分配任务的优先级之后,优先级在任务运行期间不会改变。
静态优先级调度也称为固定优先级调度。
动态优先级调度意味着任务的优先级可以随时间或系统状态而变化。
RTOS从单用途专用系统发展为多用途通用操作系统,如实时Linux。
RTOS已经从支持强大的实时及其应用程序发展到支持实时和弱实时应用程序,例如开放实时系统服务质量(QoS)多媒体应用程序,复杂的分布式实时系统,以及更多。
目前使用的RTOS包括实时内核(μC/ OS等),基于组件的内核(如OS-Kit,Coyote,2K,MMLite等),基于QoS的内核,一般的实时变体 - 目的操作系统(如RT-Linux,RTAI)。
-Linux,实时Windows NT / XP等。
许多RTOS目前都遵循Posix实时扩展的行业标准,例如RT-Linux。