实时系统和非实时系统是怎么区分的?
靠相应延时吗?
有没有临界时间?
所谓“实时”,是表示“及时”,而实时系统是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致的运行。
实时系统(Real-time system,RTS)的正确性不仅依赖系统计算的逻辑结果,还依赖于产生这个结果的时间。实时系统能够在指定或者确定的时间内完成系统功能和外部或内部、同步或异步时间做出响应的系统。因此实时系统应该在事先定义的时间范围内识别和处理离散事件的能力;系统能够处理和储存控制系统所需要的大量数据。
实时其实是一个相对的概念,指处理过程能在许可的范围内完成。
首先,操作系统按对事件响应时间是否严格要求分为实时操作系统和分时操作系统,实时操作系统诸如freeRTOS、uCOS、vxWorks等,分时系统诸如windows、linux等,区别主要体现在对cpu时间片的利用上和对CPU的中断处理上,实时系统按照优先级,对高优先级的任务优先给与时间片,以达到快速响应的目的,分时系统则将时间片均匀的分成相同的大小,交替运行任务,用户体验好。
其次,实时系统内核又可分为可剥夺内核和不可剥夺内核,可剥夺对应于网络常见的“抢占式”内核,意思为一个低优先级任务没结束,高优先级就绪后可以直接引起调度器切换上下文,运行自己。不可剥夺则相反,必须有任务主动放弃CPU的使用权,调度器才会产生一次切换上下文,运行当前最高优先级任务。
典型的剥夺内核是vxWorks,uCOS,不可剥夺见早期freeRTOS,现在的freeRTOS版本可以配置是否为剥夺内核。