前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于实时

关于实时

作者头像
Taishan3721
发布2019-07-10 15:24:48
5100
发布2019-07-10 15:24:48
举报
文章被收录于专栏:这里只有VxWorks这里只有VxWorks

我们在《VxWorks是啥?》里提到过VxWorks是一种实时系统。很多朋友总是纠结什么是实时,以及为什么要用VxWorks。说一说个人的一点拙见。

所谓“实时”,是从Real Time直译过来的,我觉得更应该翻译为“及时”,因为实时系统是指系统能够及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制相关任务协调一致的运行。

直觉上可能觉得实时系统要"快",但实时系统更侧重于“准”, 或者说是“确定性”或“可预测性”

比如操作系统A最快可以在5秒内完成任务x,99%的情况下,耗时不会超过8秒,但忙碌的时候,有万分之一的几率需要20秒才能完成任务x。

操作系统B最快也要10秒才能完成任务x,但忙碌的时候,最多只需要12秒就可以完成任务x。

从性能来说,A更强大;但从实时性角度,就是B要高一些了。

也就是说,实时性,比的是最差执行时间!因为对于实时系统,只要有一次迟到,很可能就是致命的。

即使搭配了再好的硬件,所要处理的工作也有可能超过其处理能力的上限。这时软件,也就是操作系统,就要做出取舍。不同的系统,就会采用不同的策略。

通用系统(例如Windows或者桌面Linux)的目的是尽可能满足所有用户的所有需求,所以为了处理所有工作,很可能就会导致所有工作延时,相信你在Windows上遇到过系统变的很慢的情况。

而实时系统是尽可能保证用户最重要的工作在限定时间内完成,所以重要的工作优先处理,不重要的工作只能进行更多的延时。也就是说理论上,实时系统里,有的工作可能永远不会被处理。

实时系统能够支持的这个限定时间越短,就说明实时性越好,有人根据这个限定时间的长短,提出了强实时和弱实时的概念,其实并没有严格的界限,取决于用户的具体需求。

另外,这个限定时间超时后,所需的工作如果没有完成,那根据这个后果的严重程度,又可以分为硬实时和软实时,同样也没有严格界限的。

实时系统为了保证限定时间,让其行为“可预测”,有一个很重要的指标,就是响应时间要尽可能的短。

这个响应时间,并不是为了完成任务而消耗的执行时间。因为执行时间的长短,更多的取决于任务的复杂度和硬件的性能。而指的是,从系统需求(可能是外部的硬件事件,也可能是内部的软件调度)被提出,然后实时系统放下手头的工作,最后开始执行这个新需求的时间差。也就是说实时系统不仅仅是要执行快,更重要的是要响应快。

例如在普通的Linux里,进程(或者线程)优先级的高低只是决定了它执行时间片的长短,并不保证它是否优先执行。也就是说它的执行顺序不是确定的,也就不是可预测的了。

而在VxWorks的任务调度里,优先级高的任务,就会抢占优先级低的任务。所以重要的工作,设置为高优先级就可以了。这就是VxWorks实时性的体现之一。

各种操作系统各有千秋,没有好坏之分,正如宋代卢梅坡在《雪梅》中所说:梅须逊雪三分白,雪却输梅一段香。

我们要做的就是要找到最适合当前项目的系统。就像清代阮元在《吴兴杂诗》所说:深处种菱浅种稻,不深不浅种荷花。

那如何判断一个操作系统是否适合自己的项目呢?不同的角色,肯定有不同的依据。我提供几点,仅供参考

  • 较好的验证 - 业界是否有大量成功案例;
  • 可靠性 - 该系统是否成熟稳定
  • 裁剪性 - 系统的裁剪能力,以及如何裁剪
  • 易用性 - 是否容易上手,学习门槛高不高,文档是否齐全
  • 技术支持 - 是否有本地化支持,支持的方式有哪些
  • 所支持的处理器类型 - 是否支持后续项目的软硬件升级
  • 源代码 - 是否完全安全可控
  • 工具 - 开发是否方便,故障定位能力如何
  • 价格 - 是否符合项目预算

其实项目的参考因素有很多很多,决定权很可能也不是在一个人手里,甚至很多时候上述因素都不重要,只看一个条件:

甲方让用啥,就用啥!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 这里只有VxWorks 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档