这篇文章主要介绍vxworks中实时是什么意思,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
所谓“实时”,是从Real Time直译过来的,我觉得更应该翻译为“及时”,因为实时系统是指系统能够及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制相关任务协调一致的运行。
直觉上可能觉得实时系统要"快",但实时系统更侧重于“准”, 或者说是“确定性”或“可预测性”
比如操作系统A最快可以在5秒内完成任务x,99%的情况下,耗时不会超过8秒,但忙碌的时候,有万分之一的几率需要20秒才能完成任务x。
操作系统B最快也要10秒才能完成任务x,但忙碌的时候,最多只需要12秒就可以完成任务x。
从性能来说,A更强大;但从实时性角度,就是B要高一些了。
也就是说,实时性,比的是最差执行时间!因为对于实时系统,只要有一次迟到,很可能就是致命的。
即使搭配了再好的硬件,所要处理的工作也有可能超过其处理能力的上限。这时软件,也就是操作系统,就要做出取舍。不同的系统,就会采用不同的策略。
通用系统(例如Windows或者桌面Linux)的目的是尽可能满足所有用户的所有需求,所以为了处理所有工作,很可能就会导致所有工作延时,相信你在Windows上遇到过系统变的很慢的情况。
而实时系统是尽可能保证用户最重要的工作在限定时间内完成,所以重要的工作优先处理,不重要的工作只能进行更多的延时。也就是说理论上,实时系统里,有的工作可能永远不会被处理。
实时系统能够支持的这个限定时间越短,就说明实时性越好,有人根据这个限定时间的长短,提出了强实时和弱实时的概念,其实并没有严格的界限,取决于用户的具体需求。
另外,这个限定时间超时后,所需的工作如果没有完成,那根据这个后果的严重程度,又可以分为硬实时和软实时,同样也没有严格界限的。
实时系统为了保证限定时间,让其行为“可预测”,有一个很重要的指标,就是响应时间要尽可能的短。
这个响应时间,并不是为了完成任务而消耗的执行时间。因为执行时间的长短,更多的取决于任务的复杂度和硬件的性能。而指的是,从系统需求(可能是外部的硬件事件,也可能是内部的软件调度)被提出,然后实时系统放下手头的工作,最后开始执行这个新需求的时间差。也就是说实时系统不仅仅是要执行快,更重要的是要响应快。
例如在普通的Linux里,进程(或者线程)优先级的高低只是决定了它执行时间片的长短,并不保证它是否优先执行。也就是说它的执行顺序不是确定的,也就不是可预测的了。
而在VxWorks的任务调度里,优先级高的任务,就会抢占优先级低的任务。所以重要的工作,设置为高优先级就可以了。这就是VxWorks实时性的体现之一。
各种操作系统各有千秋,没有好坏之分,正如宋代卢梅坡在《雪梅》中所说:梅须逊雪三分白,雪却输梅一段香。
我们要做的就是要找到最适合当前项目的系统。就像清代阮元在《吴兴杂诗》所说:深处种菱浅种稻,不深不浅种荷花。
那如何判断一个操作系统是否适合自己的项目呢?不同的角色,肯定有不同的依据。我提供几点,仅供参考
较好的验证 - 业界是否有大量成功案例;
可靠性 - 该系统是否成熟稳定
裁剪性 - 系统的裁剪能力,以及如何裁剪
易用性 - 是否容易上手,学习门槛高不高,文档是否齐全
技术支持 - 是否有本地化支持,支持的方式有哪些
所支持的处理器类型 - 是否支持后续项目的软硬件升级
源代码 - 是否完全安全可控
工具 - 开发是否方便,故障定位能力如何
价格 - 是否符合项目预算
其实项目的参考因素有很多很多,决定权很可能也不是在一个人手里,甚至很多时候上述因素都不重要,只看一个条件:
甲方让用啥,就用啥!
以上是“vxworks中实时是什么意思”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。