论文部分内容阅读
随着嵌入式技术的发展以及智能控制向着多领域的延伸,越来越多的设备需要高级的实时操作系统的支持。Linux操作系统由于其开源、免费、应用众多、稳定安全等特性而广受青睐。但Linux自身却有实时性不足的缺陷,这极大地阻碍了Linux在嵌入式及智能设备上的应用。
针对这一情况,本文研究了现有的各种第三方的Linux实时化方案,指出了它们的优点与不足。对于Linux内核本身,则深入分析了包括调度系统、抢占系统以及高精度定时器等与实时化相关的内核代码,并且也比较了几个有代表性的版本的差异。
在Linux实时化改进方面本文着眼于软实时应用,主要工作成果有以下几点:
1、在比较了现有实时化技术以及深入分析了内核代码的基础上,针对linux对实时周期性任务支持的不足,完善了一个与Linux内核联系较为紧密的实时周期性任务调度框架,并在此框架下对周期任务的可靠性和延迟性问题进行了改进。其关键技术包括:
(1)在Linux新的调度类框架上增加了采用红黑树的静态周期调度算法RM(单调速率算法)以弥补现有的调度机制中缺少周期调度算法的不足;
(2)对底层所使用的信号机制进行了可靠性及调度延迟性方面的改进,包括可靠信号的使用、可靠信号与不可靠信号处理顺序的改变以及周期定时器在信号处理过程中重新挂载时机的修改等等;
(3)对高精度定时器中的调度延迟进行了改进,主要是将周期定时器处理的时间从不可靠的时钟中断下半部提前到了上半部中;
(4)为用户层提供了专用而方便的系统调用。
完善后的框架提供了更方便的接口、更有效的底层调度机制,周期任务的可靠性也得以提高,调度延迟时间也有所减少。
2、在兼顾CPU运行效率的同时,一定程度上提高了定时器的精度,主要包括:
(1)提出了一种利用随机中断源米提高统计精度效果的方法;
(2)为了得到更有保障的周期调度精度,引入了一种轻量级时钟周期的思想,根据本文的提高周期任务调度精度这个目的进行了相应的修改,并提出了动态时钟频率这一进一步改进的方案。
这几种方法都在一定程度上提高了定时器的精度,有助于提高RM周期性任务的调度粒度。最后也用实验数据证实了上述的结论。