论文部分内容阅读
实时操作系统是近年来研究的一个热点,与常见的通用操作系统相比,实时操作系统的特点在于系统的正确性不仅依赖于逻辑的正确性,还取决于输出结果的及时性。目前的实时操作系统广泛应用于国防、工业自动控制、通信等领域。现在的应用对时间提出了更高的要求,需要有能够满足实时性的操作系统作为应用的支撑。随着开源项目的兴起,作为其典型代表的Linux 得到了迅速普及和发展。由于全世界各地的Linux 用户和开发者的不断努力,Linux 已成长为稳定的、性能优异的操作系统。但Linux 只是作为一个通用分时操作系统而开发的,其设计目标追求的是公平性和系统吞吐量,和实时系统的目标存在巨大差距。由于Linux 自身的特点,基于Linux 开发一个开放的、标准的、高效廉价的实时操作系统是完全可行的,如何增强Linux 的实时性是目前实时操作系统研究的一个重点。自Linux2.6 内核2003 年底发布以来,已经被大量测试和实际应用证明其是一个高效稳定的内核。相比2.4 内核,2.6 采用了一些新技术使得实时性有了很大提高,如可抢占式内核、新的O(1)调度算法等。尽管实时操作系统的开发者可以从这些改变中受益,Linux 2.6 仍然不是一个实时内核。然而,这些以及其他相关的背景工作使得将Linux 转变为RTOS 成为可能。因此需要对Linux2.6 内核进行实时化改造,进一步提高实时性。从得到Linux2.6 内核及发型版本Fedora 后,经过几个月深入的分析,最后决定从Linux 的时钟系统着手,通过分析找出其在实时性方面的不足,加以改进,提高系统的反应时间,达到实时化的目的。在上述研究结果的基础上通过对原时钟系统的修改,本文实现了一个具有较高软实时性的Linux 内核,其中重点是实现了一个与原时钟系统共存的精密时钟系统,以支持具有强实时要求的应用。修改后的内核在PC 机上长时间运行过程中始终能够及时响应时间精度为微秒的应用,取得了良好的效果。本文给出了完整的修改Linux 内核时钟系统的方法。涵盖了常见的Linux 实时化对时钟的处理过程,同时提出了采用双时钟系统以提高Linux 实时性。对Linux实时化有着一定的借鉴意义。在修改Linux 时钟系统的过程中,主要在以下三个方面进行了研究:(1) 轻量级时钟中断;(2) 多模式时钟中断;(3) 精密的时钟系统。最后给出了实验结果及针对本文的不足而尚待努力的方向。