论文部分内容阅读
随着航空航天、军事、汽车电子和信息家电等行业的发展,实时系统被应用到更广泛、更复杂的环境中,并对实时系统的性能提出了更高的要求,而实时操作系统作为实时系统的核心起着决定作用。与此同时,一个开源的免费的操作系统--Linux正在以破竹之势蓬勃发展。人们希望凭借Linux支持多硬件平台的优势,将Linux用于嵌入式系统当中,而嵌入式系统大多需要应用到实时环境中,因此提高Linux的实时性十分必要。
国内外很多研究机构都在努力通过各种方式提高Linux的实时性,形成了多种实时Linux系统。但是,它们当中很多是在标准Linux内核的基础上进行修改,无法达到硬实时的要求。而采用双内核结构的基于ADEOS的RTAI/Linux系统,不仅能达到硬实时的要求,而且开源免费。该系统对Linux作了两方面扩展:一是在硬件层之上构建了一个硬件抽象层ADEOS;二是增加了一个实时微内核RTAI。在RTAI中加载LXRT模块,可以为用户空间实时应用程序提供硬实时能力,方便实时应用程序开发。
借助RTAI/Linux系统开源的特性,通过分析其源代码,以自下而上的顺序对ADEOS和RTAI的实现机制进行了深层次的研究。这对了解和移植RTAI具有重要意义,也对今后的研究起到抛砖引玉的作用:基于Linux内核模式和基于LXRT用户模式,对重负载下平均任务响应时间进行了测试及对比。实验结果表明,在重负载下基于LXPT的用户空间实时任务响应更快;在进一步分析RTAI实时任务管理的实现代码中发现,RTAI原有的双向链表结构的就绪任务队列,需要按优先级遍历链表来定位就绪任务,在任务较多时会影响RTAI的实时性。通过引入优先级位图的方式,将就绪任务队列按照优先级从高到低的顺序分级,每一级采用双向循环链表,这样可以加快任务查找、插入和删除的时间。并且基于FIFO和RR两种调度方式,分别对原RTAI和改进后的RTAI进行测试。实验结果表明,采用基于优先级位图方式的就绪任务队列,能进一步提高RTAI的实时性,并且能适应更复杂的调度方式。