嵌入式通信系统
上QQ阅读APP看书,第一时间看更新

1.3.2 按实时性分类

一个实时系统(Real-Time System,RTS)是指计算的正确性不仅取决于程序的逻辑正确性,也取决于结果产生的时间,如果系统的时间约束条件得不到满足,将会发生系统出错。也就是说,实时系统是对响应时间有严格要求的。根据嵌入式系统是否具有实时性,可将其分为嵌入式实时系统和嵌入式非实时系统。

1.嵌入式非实时系统

早期的嵌入式系统中没有操作系统的概念,程序员编写嵌入式程序通常直接面对裸机及裸设备。在这种情况下,通常把嵌入式程序分成两部分,即前台程序和后台程序。前台程序通过中断来处理事件,其结构一般为无限循环;后台程序则掌管整个嵌入式系统软硬件资源的分配、管理以及任务的调度,是一个系统管理调度程序。这就是通常所说的前后台系统。一般情况下,后台程序也叫任务级程序,前台程序也叫事件处理级程序。在程序运行时,后台程序检查每个任务是否具备运行条件,通过一定的调度算法来完成相应的操作。对于实时性要求特别严格的操作通常由中断来完成,仅在中断服务程序中标记事件的发生,不再做任何工作就退出中断,经过后台程序的调度,转由前台程序完成事件的处理,这样就不会造成在中断服务程序中处理费时的事件而影响后续和其他中断。

实际上,前后台系统的实时性比预计的要差。这是因为前后台系统认为所有的任务具有相同的优先级别,即是平等的,而且任务的执行又是通过FIFO队列排队,因而对那些实时性要求高的任务不可能立刻得到处理。另外,由于前台程序是一个无限循环的结构,一旦在这个循环体中正在处理的任务崩溃,使得整个任务队列中的其他任务得不到机会被处理,从而造成整个系统的崩溃。由于这类系统结构简单,几乎不需要RAM/ROM的额外开销,因而在简单的嵌入式应用系统被广泛使用。

2.嵌入式实时系统

实时系统对逻辑和时序的要求非常严格,如果逻辑和时序出现偏差将会引起严重后果。大多数嵌入式系统都属于嵌入式实时系统。根据实时性强弱,实时系统又可进一步分为软实时系统和硬实时系统。

(1)软实时系统(Soft Real-Time)

软实时系统是指系统对响应时间有一定的要求,但是如果响应时间不能满足,也不会导致系统崩溃或出现致命错误,例如,实时多媒体系统就是一种软实时系统。基于Linux操作系统的嵌入式系统是一个典型的软实时系统,尽管在RTlinux里面对系统的调度机制做了很大的提高,使得实时性能也提高了很多,但是RTLinux还是一个软实时系统。基于Windows CE的嵌入式系统也是软实时系统。

(2)硬实时系统(Hard Real-Time)

硬实时系统是指系统对响应时间有严格要求,如果响应时间不能满足,就会引起系统崩溃或致命错误,如飞机的飞控系统。硬实时系统要求系统运行有一个刚性的、严格可控的时间限制,它不允许任何超出时限的错误发生。超时错误会带来损害甚至导致系统失败,或者系统不能实现它的预期目标。基于VxWorks、μC/OS-II、eCOS、Nucleus等的操作系统是硬实时系统。