论文部分内容阅读
在工业测控领域中,系统实时性的重要性不言而喻。系统不仅要保证数据采集、控制等周期任务在确定的时间内完成,也要保证对突发事件等非周期任务的及时响应。实时操作系统在实时系统中处于核心地位,它是各个功能能够实现的基石。当今主流的实时操作系统虽然性能良好,但都价格昂贵,代码不公开,不利于用户的开发。Linux的出现给我们带来了契机,但Linux只是作为一个通用分时操作系统而开发的,内在的一些固有特性决定了其不适合直接用在实时系统中,于是就出现了各种对其进行实时化改造的方案,RTAI就是其中的典型代表。但是当前对RTAI的研究大多仅限于理论研究,真正将其用在实际系统中的并不多见。在这种背景下,作者在攻读硕士学位期间,将Linux+RTAI方案应用到一套工业实时测控系统中,并根据RTAI的底层实现思想,提出了一个新的旨在提高Linux时间响应精度的方案。论文首先介绍了对Linux进行实时化改造的常用方法,分析了Linux内核的调度系统、中断系统、时钟系统等核心部分,研究了Linux2.6实时性能方面的改进和不足,指出了影响Linux实时性的主要因素。分析了Linux的一种实时化方法RTAI的实现原理,指出了RTAI在任务组织方式上的缺陷并提出了改进的方法。在此基础上成功地利用Linux和RTAI构建一个实时测控系统,并且根据需要分别在内核态和用户态实现了两套控制、显示任务。内核态的实现方式中,控制任务利用RTAI所提供的内核模块实现,显示任务利用SVGAlib库完成;用户态实现方式下的控制任务由RTAI的扩展模块LXRT实现,显示任务用QT实现。最后,在仔细分析了RTAI的底层实现机制ADEOS的原理后,提出了一种新的旨在提高Linux时间响应精度的方法。该方法利用ADEOS提供的环境,创建一个优先级高于Linux的实时域,并实现了一套实时时钟系统,该时钟系统采用了one-shot模式。在没有增加多少系统负担的情况下,本方法明显提高了Linux响应时间的精确性。