说说实时操作系统与以中断为基础的多任务多进程操作系统的最大区别

【本文由“观察者网用户_479908”推荐,来自《华为可以考虑汽车DCS》评论区,标题为观察者网用户_479908添加】

  • 老饕
  • 实时操作系统下的控制和以中断为基础的多任务多进程操作系统看起来没差别,但是实际上精确度是有差别的。后者有阻塞的隐患。一旦任务量过多,系统就崩溃了。以嵌入式系统为基础的PLC我看过不少,有很多其实还达不到手机的水平,比如说GE甚至在用486当PLC的核。

实时操作系统与以中断为基础的多任务多进程操作系统的最大区别是:前者要确保所有任务都得到执行,占用系统资源过多的“无赖任务”会被放弃,放弃次数多了会告警,乃至有序宕机;后者的重点是确保任务得到完整执行,不执行完不跳到下一个进程,所以有可能被“无赖进程”锁住,但不会有任务执行得半途而废的事情。

各有各的用处。

用486或者M68040做核的PLC、DCS大有人在,主要是成熟度的缘故。算力方面,核心控制功能并不需要多少算力。当年IBM370的算力比现在的手机差远了,大型核电站轻松拿下;PDP11放在现在就是电子算盘了,玩转阿波罗没压力。

实时操作系统的关键不在于复杂任务的计算,而在于I/O能力和对所有任务“不掉链子”,实在要掉链子,也是有控制、能预测地掉,比如基于overrun,对任务划为前台(foreground)和后台(background),后台先掉,不是谁也不知道在哪里会掉链子。

全部专栏