嵌入式系统设计---实时系统与嵌入式操作系统

    简单地说,实时系统可以看成对外部事件能够及时响应的系统。这种系统最重要的特征是时间性,也就是实时性,实时系统的正确性不仅依赖于系统计算的逻辑结果,还依赖于产生这些结果的时间。

    目前,大多数实时系统都是嵌入式的,并且实际运行中的嵌入式系统也都有实时性的需求,因此,在诸多类型的嵌入式操作系统中,实时嵌入式操作系统是最具代表性的一类,它融合了几乎所有类型的嵌入式操作系统的特点,所以本节主要以实时嵌入式操作系统的特性和概念为主线,对嵌入式操作系统的基本概念与特点、基本架构、内核服务、内核对象与内核服务等核心内容进行全面的介绍。

 

1 嵌入式系统的实时概念

    现实世界中,并非所有的嵌入式系统都具有实时特性,所有的实时系统也不一定都是嵌入式的。但这两种系统并不互相排斥,兼有这两种系统特性的系统称为实时嵌入式系统。

    它们之间的关系如图 12-7 所示。

    (1)逻辑(或功能)正确,是指系统对外部事件的处理能够产生正确的结果。

    (2)时间正确,是指系统对外部事件的处理必须在预定的周期内完成。

    (3)死线(Deadline)或时限、死限、截止时间,是指系统必须对外部事件进行处理的最迟时间界限,错过此界限可能产生严重的后果。通常,计算必须在到达时限前完成。

    (4)实时系统,是指功能正确和时间正确同时满足的系统,二者同等重要。换言之,实时系统有时间约束并且是时限驱动的。但是在某些系统中,为了保证功能正确性,有可能牺牲时间正确性。

扫描二维码关注公众号,回复: 4444466 查看本文章

     对于实时系统的划分,通常还可以根据实时性的强弱,即系统必须对外部事件做出响应的时间长短,将实时系统分为:

    (1)强实时系统,其系统的响应时间非常短,通常在毫秒或微秒级。

    (2)一般实时系统,其系统响应时间比强实时系统要求要低,通常在秒级。

    (3)弱实时系统,其系统响应时间可以更长,也可以随系统负载的轻重而变化。

    根据对错失时限的容忍程度或后果的严重性,可以将实时系统分为软实时系统和硬实时系统。

    (1)硬实时系统,指系统必须满足其灵活性接近零时限要求的实时系统。时限必须满足否则就会产生灾难性后果,并且时限之后得到的处理结果或是零级无用,或是高度贬值。

    (2)软实时系统,指必须满足时限的要求,但是有一定灵活性的实时系统。时限可以包含可变的容忍等级、平均的截止时限,甚至是带有不同程度的、可接受性的响应时间的统计分布。在软实时系统中,时限错失通常不会导致系统失败等严重后果。

    表 12-2 是对软实时和硬实时系统的对比。

    通过比较,可知由于错过时限对软实时系统的运行没有决定性的影响,一个软实时系统不必预测是否可能有悬而未决的时限错失。相反,软实时系统在探知到错失一个时限后可以启动一个恢复进程。

    在实时系统中,任务的开始时间跟时限或完成时间同样重要,由于任务缺少需要的资源,如CPU 和内存,就有可能阻碍任务执行的开始并直接导致错失任务的完成时限,因此时限问题演变成了资源的调度问题。

    这一点对调度算法和任务设计都有至关重要的影响。

2 嵌入式操作系统概述

    所谓嵌入式操作系统就是指运行在嵌入式计算机系统上支持嵌入式应用程序的操作系统,是用于控制和管理嵌入式系统中的硬件和软件资源、提供系统服务的软件集合。嵌入式操作系统是嵌入式软件的一个重要组成部分。它的出现提高了嵌入式软件开发的效率,提高了应用软件的可移植性,有力地推动了嵌入式系统的发展。

    1.嵌入式操作系统的特点

    与通用操作系统相比,嵌入式操作系统主要有以下特点:

    (1)微型化:嵌入式操作系统的运行平台不是通用计算机,而是嵌入式计算机系统。这类系统一般没有大容量的内存,几乎没有外存,因此,嵌入式操作系统必须做得小巧,以尽量少占用系统资源。为了提高系统的执行速度和可靠性,嵌入式系统中的软件一般都固化在存储器芯片中,而不是存放在磁盘等载体中。

    (2)代码质量高:在大多数应用中,存储空间依然是宝贵的资源,这就要求程序代码的质量要高,代码要尽量精简。

    (3)专业化:嵌入式系统的硬件平台多种多样,处理器更新速度快,每种都是针对不同的应用领域而专门设计。因此,嵌入式操作系统要有很好的适应性和移植性,还要支持多种开发平台。

    (4)实时性强:嵌入式系统广泛应用于过程控制、数据采集、通信、多媒体信息处理等要求实时响应的场合,因此实时性成为嵌入式操作系统的又一特点。

    (5)可裁减、可配置:应用的多样性要求嵌入式操作系统具有较强的适应能力,能够根据应用的特点和具体要求进行灵活配置和合理裁减,以适应微型化和专业化的要求。

    2.嵌入式操作系统的分类

    嵌入式操作系统的种类繁多,可以从不同角度对其进行分类。

    从嵌入式操作系统的获得形式上,可以分为商业型和免费型两类:

    (1)商业型。商业型嵌入式操作系统一般功能稳定、可靠,有完善的技术支持、齐全的开发工具和售后服务。如 WindRiver 公司的 VxWorks 、pSOS 和 Palm 公司的 Palm OS 等。但是,价格昂贵,用户通常得不到系统的源代码。

    (2)免费型。免费型嵌入式操作系统的优势在于价格方面,另外,应用系统开发者可以获得系统源代码,给开发带来了方便。但免费型的操作系统功能简单、技术支持差、系统的稳定性也不够好。典型代表系统有嵌入式 Linux、uC/OS 等。

    从嵌入式操作系统的实时性上,可以分为实时嵌入式操作系统和非实时嵌入式操作系统两类。

    (1)实时嵌入式操作系统(Real-Time Embedded OS,RTEOS)。实时嵌入式操作系统支持实时系统工作,其首要任务是调度一切可利用资源,以满足对外部事件响应的实时时限,其次着眼于提高系统的使用效率。实时嵌入式操作系统主要用在控制、通信等领域。目前,大多数商业嵌入式操作系统都是实时操作系统。

    (2)非实时嵌入式操作系统。这类操作系统不特别关注单个任务响应时限,其平均性能、系统效率和资源利用率一般较高,适合于实时性要求不严格的消费类电子产品,如个人数字助理、机顶盒等。

3 实时嵌入式操作系统

    整体上看,一个嵌入式系统的实时性能是由硬件、实时操作系统及应用程序共同决定的,其中,嵌入式实时操作系统内核的性能起着关键的作用。通常,有两种类型的实时嵌入式操作系统:实时内核型的 RTEOS 与通用型的 RTEOS。

  • 实时内核型的 RTEOS:这类操作系统,驱动程序传统嵌在内核之中,应用程序和中间件实现在标准的应用程序接口(APIs,Application Programming Interfaces)之上。

  • 实时通用型的 RTEOS:这类操作系统,驱动程序并非深度嵌入到内核中,而是在内核之上实现,并且仅包含少数必要的驱动程序,应用程序和中间件可以直接在驱动程序之上实现,而不必在标准的APIs 实现。它们的区别如图 12-8 所示。

    实时嵌入式操作系统和通用操作系统之间的功能有很多相似之处,例如,它们都支持多任务,支持软件和硬件的资源管理,以及都为应用提供基本的操作系统服务。

   1.嵌入式实时操作系统的关键特性

    与通用操作系统相比,实时嵌入式操作系统在功能上具有很多特性。实时嵌入式操作系统特有的不同于通用操作系统的关键特性主要有:

  • 满足嵌入式应用的高可靠性;

  • 满足应用需要的可裁减能力;

  • 内存需求少;

  • 运行的可预测性;

  • 采用实时调度策略;

  • 系统的规模紧凑;

  • 支持从 ROM 或 RAM 上引导和运行;

  • 对不同的硬件平台均有更好的可移植性。

    2.嵌入式实时操作系统的实时性能指标在评估实时操作系统设计性能时,时间性能指标是最重要的一个性能指标,常用的时

间性能指标主要有如下几个:

    (1)任务切换时间:是指 CPU 控制权由运行态的任务转移给另外一个就绪任务所需要的时间,包括在进行任务切换时,保存和恢复任务上下文所花费的时间及选择下一个待运行任务的调度时间,该指标跟微处理器的寄存器数目和系统结构有关。相同的操作系统在不同微处理器上运行时所花费的时间可能不同。

    任务切换时间所对应的时序图如图 12-9 所示。

 

    (2)中断处理相关的时间指标,对应的中断时序图如图 12-10 所示。

  • 中断延迟时间,是指从中断发生到系统获知中断的时间,主要受系统最大关中断时间的影响,关中断时间越长,中断延迟也就越长;

  • 中断处理执行时间,该时间由具体的应用决定;

  • 中断响应时间,是指从中断发生到开始执行用户中断服务例程的时间;

  • 中断恢复时间,是指用户中断服务例程结束回到被中断的代码之间的时间;

  • 最大关中断时间,包含两个方面:一是内核最大关中断时间,即内核在执行临界区代码时关中断;二是应用关中断时间,关中断最大时间是这两种关中断时间的最大值;

  • 任务响应时间,是指从任务对应的中断产生到该任务真正开始运行的时间;

    对于可抢占式调度,中断恢复的时间还要加上进行任务切换和恢复新的任务上下文的时间。

    (3)系统响应时间:指系统在发出处理请求到系统做出应答的时间,即调度延迟,这个时间的大小主要由内核任务调度算法所决定。

    作为总结,典型的可抢占实时内核的性能指标计算方法如表 12-3 所示。

4 主流嵌入式操作系统介绍

    迄今为止,据不完全统计,世界上现有的嵌入式操作系统的总数达几百个之多。其中最常用的有十几种,这些操作系统在各自的应用领域都有很高的知名度和广大的用户群。

    表 12-4 选取了一些业界常见的嵌入式操作系统加以比较。

猜你喜欢

转载自blog.csdn.net/hu19930613/article/details/82778650