定义实时嵌入式系统

ZDNet软件频道 时间:2003-10-20 作者:ZDNet China |  我要评论()
本文关键词:embedded
在股票报价、天气预报、交通报告等系统中都有实时操作系统的影子。“实时”这一术语广为使用,那么对嵌入式软件开发者来说,这一概念究竟有什么样的含义呢?
本文译自Builder.com,未经许可请勿转载在股票报价、天气预报、交通报告等系统中都有实时操作系统的影子。“实时”这一术语广为使用,那么对嵌入式软件开发者来说,这一概念究竟有什么样的含义呢?

IEEE(美国电气电子工程师协会)定义实时系统为“那些正确性不仅取决于计算的逻辑结果,也取决于产生结果所花费的时间的系统”。

一般来说,这意味着实时嵌入式系统必须在一个可预测可保证的时间段内做出对外部事件的反应。如果没有达到上述要求,那么系统就会做出错误的操作。

好,那么按照定义,下面的系统可以认为是实时系统:

  • 必须在是10毫秒内移走机械手来避免碾压的微控制器
  • 必须在30秒时间内关闭安全阀来防止发动机停转的系统
  • 必须在80微妙时间内对通信端口中断做出响应、否则可能会丢失数据包的微控制器
硬实时和软实时

在上面所列出最后一个例子中,如果微控制器有一个健壮的通信协议,它可以拥有失败重发机制,而且可以保证平均每一千万的数据包仅丢失一个,那么会发生什么呢?它还是实时系统么?这取决于重发的结果,但是很显然,在某种程度上它的确是实时的。

因此,实时系统一般可分为硬件实时和软件实时这两大类:

  • 硬实时系统有一个刚性的、不可改变的时间限制,它不允许任何超出时限的错误。超时错误会带来损害甚至导致系统失败、或者导致系统不能实现它的预期目标。
  • 软实时系统的时限是一个柔性灵活的,它可以容忍偶然的超时错误。失败造成的后果并不严重,仅仅是轻微的降低了系统的吞吐量。
实时有多快?

实时系统的正式定义只是要求系统的响应“足够快”而并没有指出它究竟有多快。这样,实时这一术语就可以应用于许多系统上。

这也意味着任何系统都是实时的——只要我们希望它是。例如,你可以说:“如果我们不在一分钟内对顾客的要求做出反应,那么顾客就会不满而要求退货”;因此,它肯定是一个实时系统。

实际上,当我们说到实时嵌入式软件时,时限究竟是多少呢?一般从软件的角度来说,软件可以在大约十微妙的时间内对外部事件做出可靠的响应。

为什么这么限制呢?这是因为在典型的微处理器体系结构、典型的时钟速度下经过精细的设计,我们可以构造一个复杂的嵌入式系统,它可以处理这个量级的硬实时限制。按照这种时限来编写硬实时软件是困难的,但却很有实际意义。

快并不总是意味着更好

不要认为实时代码必须是运行速度最快的代码。在实时系统中,可预测性比速度更重要。因此,我们要避免使用那些在大多数情况下速度很快、但在某些条件下速度又会慢下来的算法,我们更愿意采用虽然慢一些但是更有可预测性的算法。

当你从事嵌入式项目时,你首先需要知道该系统究竟属于哪一个类型(硬实时、软实时还是非实时系统),这一点很重要。这三种系统所要求的编程技术和规范并不相同。


本文作者David Brenan是一名具有15年以上工作经验的独立嵌入式系统开发人员。他的作品包括设计过获奖的专业数字音频产品。




百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134