五、RTOS 的优势
上面已经说到,Linux 桌面系统的主要目标是吞吐量,在单位时间内执行更多的代码。
但是对于单片机来说,首要目标不是吞吐量,而是确定性,因此衡量一个实时操作系统坚固性的重要指标,是系统从接收一个任务,到完成该任务所需的时间。也就是说,任务调度才是第一考量要素。
在单片机开发中,一般有 2 种编程模型:基于状态机(裸跑),基于 RTOS。
如果基于状态机,就不存在任务调度问题了,因为只有一个执行序列,所有的操作都是串行执行的,唯一需要注意的控制流程就是中断处理。
如果基于 RTOS,主要利用的就是任务调度,实现真正的硬实时。这方面最牛逼的就是VxWorks了,当然价格也是非常可观的,有些公司购买之后,甚至会把除了任务调度模块之外的其他模块全部重写一遍,这也足以证明了 VxWorks 在任务调度处理上的确很厉害,这也是它的看家本领!
当然,对于简单、需要严格控制执行序列的关键程序来说,使用有限状态机的编程框架,一切都在自己的掌握中。只要代码中没有 bug,那么理论上,一切行为都是在控制之中的,这也是为什么很多军事设备上使用单片机的原因!
六、总结
关于任务调度的问题,是一个操作系统的重中之重,其中需要学习的内容还有很多,最近刚买了一本陈海波老师的新书,也就是华为的鸿蒙系统背后的灵魂人物。
如果有新的学习心得,再跟大家分享。