类型
rtlinux patch
freertos
ucos
rt-thread 国产实时os
总结
查看了些许资料,freertos和 ucos除了中断路径以及调度算法简单外带来的调度开销小外,(没用缺页, 带确认),没有看到其他特殊的实时os的特性,例如edf的实现。
freertos 和usos等都未打开mmu, 这样可以避免缺页中断带来的开销。
rtos设计思路
rtos更多的强调的是低时延,因而对吞吐量会有影响。 传统的linux更多的照顾的是系统的吞吐量。
总体思路:基于传统的优先级调度策略,让高优先级的任务能够快速得到运行,从高优先级任务被唤醒到运行的时间应该是确定的,保证低时延。
- 去掉会长时间关中断和关抢占的锁。
如linux中的spin_lock(会关抢占), rt-linux patch将其改成rtmutex - 降低中断处理时关中断对系统的影响。
- 处理好优先级翻转问题
- 实时的消息时间处理机制,优先唤醒等待队列中高优先级任务
待确认linux是否有相关机制?rtlinux是如何实现的? - 避免提供时延不确定的api, 比如linux里面的缺页中断
- 降低系统抖动,比如关闭中断对tick中断的影响
freertos 好像看到有对此进行的特殊应付,待仔细阅读代码确认 - 系统级的服务也要保证实时性
如回写文件时为提升性能引入的pagecache机制。实时系统级任务为保证实时性可能要牺牲整体性能了。
参考资料
freertos 有一个系列
https://blog.csdn.net/zhzht19861011/article/details/49819109
硕士论文分析freertos
http://www.doc88.com/p-3962314510664.html
实时rtos
—给出了实时os的具体特征定义
https://zhuanlan.zhihu.com/p/86861756