Linux与VxWorks主要区别(六):实时性

Linux与VxWorks的主要区别
6、实时性
   Linux      VxWorks
   软实时     硬实时

实时操作系统 (Real-time OS) 是相对于分时操作系统 (Time-Sharing OS) 的一个概念。在一个分时操作系统中,计算机资源会被平均地分配给系统内所有的工作。在分时系统中,各项任务需要花多长时间来完成,这一点并不重要;而在一个实时操作系统之中,最关注的是每个任务在多长时间内可以完成。简单地说,实时和分时操作系统最大的不同在于 “时限(deadline)”这个概念。
实时操作系统的特点:
1、异步事件的响应
2、切换延迟和中断延迟时间的确定
3、优先级中断和调度
4、抢占式调度
5、内存锁定
6、连续文件
7、同步

从上述区别中可以看出,在实时操作系统中,系统必须在特定的时间内完成指定的应用,具有较强的“刚性”,而分时操作系统则注重将系统资源平均地分配给各个应用,不太在意各个应用的进度如何,什么时间能够完成。不过,就算是实时操作系统,其“刚性”和“柔性”的程度也有所不同,就好像是系统的“硬度”有所不同,因而有了所谓的“硬实时(hard real-time)”和“软实时 ( soft real-time)”。

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

硬实时与软实时之间最关键的差别在于,软实时只能提供统计意义上的实时。例如,有的应用要求系统在95%的情况下都会确保在规定的时间内完成某个动作,而不一定要求100%。在许多情况下,这样的“软性”正确率已经可以达到用户期望的水平。比如,用户在操作DVD播放机时,只要98%的情况都能正常播放,用户可能就满意了;而发射卫星、控制核反应堆的应用系统,这些系统的实时性必须达到100%,是绝对不允许出现意外的。

其他解释:
硬实时, 顾名思义是由硬件、即计算机主机板上的硬件 - 集成电路,如CPU, BIOS等来进行实时控制。也就是说将CPU的运算周期(CPU cycle)按照事先设定的标准,如平均分配(所谓的Time slice)、或按某些硬件优先权分配,等等,来防止某个硬件夺去整个系统的反应时间, 让各个外接部件, 特别是输入输出设备等, 能够得到系统的及时反馈,也就是说,某个外接部件在多长的时间里能够得到系统的反馈,得到CPU完成计算的时间,是可以得到保证的, 这也就是所谓的deterministic real time。 其实,真正的实时系统不仅需要硬件的支持,还需要专门的实时操作系统, 所以一般这种都是专门的设备,如工业自动化控制,军用电子设备等。它们的操作系统都是专门做的。 

软实时指的是在对非实时的操作系统,比如桌面计算机操作系统,如Windows, 进行某些改动,来达到近乎实时的效果,但是严格来说还不是真正的实时,只是接近实时而已。它的做法是用一个专门的软件部件,代替桌面计算机操作系统中的进行控制的功能,如 process control和kernel,以达到一个接近于能够准时得到系统反馈和完成计算的反应速度。

著名的硬实时系统包括:
VxWorks,rtems, rtlinux, ThreadX, QNX,Nucleus等,
软实时系统包括:Linux2.6.X, winCE
在学术文献中的解释:
1、硬实时是指那些对时间要求非常严格的系统一旦系统不能满足程序对时间的要求的话系统就要崩溃
   软实时是指那些对时间要求不是很严格的系统一旦系统不能满足程序对时间的要求也不至于引起系统的崩溃
2、硬实时是指任务必须在一定的时间内,或者某个时间点前完成
   软实时则指对任务的完成时间有要求,但如果任务偶尔没有在规定的时间内完成,系统仍能正常运行
3、硬实时是指这种时限的要求是绝对的,任何一个实时任务都能够在时限之前完成
   软实时的要求就没有这么严格,允许偶尔有实时任务不满足时限的要求
4、软实时是指统计意义上的实时,一般整体吞吐量大或整体响应速度快,但不能保证特定的任务在指定的时间内完成
   硬实时则是指时间要求必须被严格保证的实时
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页