RTOS

  RTOS是指能够在指定或者确定的时间内完成系统功能和对外部或内部、同步或异步时间做出咱应的系统,系统能够处理和存储控制系统所需要的大量数据。RTOS的正确性不仅依赖于系统计算的逻辑结果,还依赖于产生这个结果的时间。

分类及应用

  RTOS主要分为强实时(hard real-tlme)系统和弱实时(soft real-time)系统两类。

      强实时系统应用在航空航天、军事、核工业等领域中;弱实时系统应用于如视频点播系统、信息采集与检索系统等。

特点

  (1)约束性

  RTOS任务的约束包括时间约束、资源约束、执行顺序约束和性能约束。

  RTOS的任务具有时间约束性。时间约束是任何RT0S都固有的约束。时间约束性可分为硬实时和软实时。硬实时是指在航空航天、军事、核工业等一些关键领域中应用的系统,时间要求必须能够得到完全满足,否则将造成不可预计的结果。软实时通常是指在监控系统、信息采集系统等某些应用中,有时间约束要求,但偶尔违反不会造成严重影响。

  资源约束是指多个实时任务共享有限的资源时,必须按照一定的资源访问控制协议迸行同步,以避免死锁和高优先级任务被低优先级任务堵塞的时间(即优先级倒置时间)不可预测。

  执行顺序约束是指各任务的启动和执行必须满足一定的时间和顺序约束。例如,在分布式端到端(end-to-end)实时系统中,同一任务的各子任务之间存在前驱或后继的约束关系,需要执行同步协议来管理子任务的启动和控制子任务的执行,使它们满足时间约束和系统可调度性要求。

  性能约束是指必须满足如可靠性、可用性、可预测性、服务质量(Quality of Service,QoS)等性能指标。

  (2)可预测性

  可预测性是指RTOS完成实时任务所需要的执行时间应是可知的。可预测性是RTOS的一项重要性能要求。可预测性包括硬件时延的可预测性和软件系统的可预测性(包括应用程序的响应时间是可预测的,以及操作系统的可预测性)。

  在多种任务型RTOS中,不但包括周期任务、偶发任务、非周期任务,还包括非实时任务。多种类型任务的混合,使系统的可调度性、可预测性分析更加困难。

  (3)可靠性

  大多数RTOS要求有较高的可靠性,要求系统在最坏情况下都能正常工作或避免损失。可靠性是RTOS的重要性能指标。

  (4)交互性

  外部环境是RTOS不可缺少的一个组成部分,它往往是被控子系统。嵌人式计算机系统一般作为控制系统,必须在规定的时间内对被控子系统请求做出反应。被控子系统也必须能够正常工作或准各对任何异常行为采取动作。两者相互作用构成完整的实时系统。

调度技术

  给定一组实时任务和系统资源,确定每个任务何时何地执行的整个过程就是调度。而RTOS中调度的目的则是要尽可能地保证每个任务满足它们的时间约束,及时对外部请求做出响应。RTOS的调度技术常用的有以下两种。

  (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等。

相关百科