软实时和硬实时操作系统的区别

操作系统按硬件范畴的表现形式分:芯片级嵌入(含程序或算法的处理器)、模块级嵌入(系统中的某个核心模块)系统级嵌入。
  按软件范畴实时性要求分:非实时系统、软实时系统、硬实时系统。对实时系统,他的正确性不仅与系统的逻辑正确性相关,而且与系统响应时间相关,如果系统响应不能满足时限的要求,即使它能得到正确的输出,我们也只能说他是一个失败的响应。“软”意味着如果没有满足指定的时间约束并不会导致灾难性后果,而对硬实时系统来说却是灾难性的。

 

  在一个分时操作系统中,计算机资源会被平均地分配给系统内所有的工作。在分时系统中,各项任务需要花多长时间来完成,这一点并不重要;而在一个实时操作系统之中,最关注的是每个任务在多长时间内可以完成.简单地说,实时和分时操作系统最大的不同在于 时限(deadline)这个概念。

  从上述区别中可以看出,在实时操作系统中,系统必须在特定的时间内完成指定的应用,具有较强的刚性,而分时操作系统则注重将系统资源平均地分配给各个应用,不太在意各个应用的进度如何,什么时间能够完成。不过,就算是实时操作系统,其刚性和柔性的程度也有所不同,就好像是系统的硬度有所不同,因而有了所谓的硬实时(hard real-time)和软实时 ( soft real-time)。硬实时系统有一个刚性的、不可改变的时间限制,它不允许任何超出时限的错误。超时错误会带来损害甚至导致系统失败、或者导致系统不能实现它的预期目标。软实时系统的时限是一个柔性灵活的,它可以容忍偶然的超时错误。失败造成的后果并不严重,例如在网络中仅仅是轻微地降低了系统的吞吐量。硬实时与软实时之间最关键的差别在于,软实时只能提供统计意义上的实时。例如,有的应用要求系统在95%的情况下都会确保在规定的时间内完成某个动作,而不一定要求100%。实时就是在规定的时间内必须正确地完成操作,完成操作的时间有操作系统的因素,也有用户软件的因素。非实时操作系统指操作系统无法保证哪怕是最高优先级任务开始执行的最后时限。软实时操作系统指的是操作系统只能保证在xx时间内执行最高优先级的用户代码,但用户软件是否能及时完成操作,操作系统不管!硬实时嘛,操作系统一直负责到操作完成,世界上第一个硬实时操作系统现在还在研制中,之于何时能完成,问上帝吧!强调一个概念,非实时、软实时、硬实时三个概念的区别,并不是以速度为标准的,它是一个确定性概念!linux与rtlinux比,高优先级任务到达时,无论是最短时间还是平均时间,linux均优于rtlinux,但是rtlinux的最后时限优于linux,所以rtlinux的实时性优于linux,这就是确定性的含义。即使使用非屏蔽中断完成的操作,也只能算软实时,不能算硬实时,因为非屏蔽中断并不能告诉你何时完成工作。

你可能感兴趣的:(uCos-II)