论文部分内容阅读
实时操作系统是近年来研究的一个热点,目前的实时操作系统广泛应用于国防、工业自动控制、通信等领域,越来越多的应用也对时间提出了更高的要求,这就需要有能够满足实时性的操作系统作为应用的支撑。同时,随着开源项目的兴起,作为典型代表的Linux得到了迅速普及和发展,己成长为稳定的、性能优秀的操作系统。虽然Linux只是作为一个通用分时操作系统而开发的,但是出于Linux自身的特点,基于Linux开发一个开放的、标准的、高效廉价的实时操作系统是完全可行的,如何增强Linux的实时性成为目前实时操作系统研究的一个重点。Linux家族中,2.6内核自2003年底发布以来,己经被大量测试和实际应用证明其是一个高效稳定的内核。相比2.4内核,2.6采用了一些新技术,例如,可抢占式内核和O(1)调度算法等,使得系统实时性有了很大提高,尽管Linux 2.6仍然不是一个实时内核,但是这些已有的优秀的改进以及其他相关的背景却为Linux实时化工作提供很好的平台,而在此基础上进行研究和改进也更加有可能进一步提高系统的实时性。在经过对Linux2.6内核仔细和深入的分析后,我们决定从Linux的调度系统着手,因为新的O(1)调度算法使得进程运行时间片的重新分配更及时,并且普通进程的动态优先级的计算过程更简单,计算时机更分散,调度时机更宽松,调度流程更简单,所有这些改进都很大程度上提高了调度器的实时性能。但是通过分析我们发现其在实时性方面仍然存在不足,就是实时进程的动态优先级实际上是“静态”的,一经设定便不再修改,这就大大影响了实时性能。因此在上述分析和研究的基础上,本文将优秀的动态调度算法LLF引入Linux2.6内核,将之与原系统的调度算法有效统一,实时进程的动态优先级随时间动态改变,并在此基础上修改了相关函数和调度流程,使得新系统可以具有更好的实时调度能力,以进一步支持具有实时要求的应用。在内核修改编译后,我们在新内核的基础上进行了相关测试并与修改前内核进行比较,结果证明修改后的内核实时性能有了一定的提高,并且,相比较以往的添加新的调度器的做法,这种将新的调度算法思想融入原有内核,最大程度利用原有内核优势的改造思想也对Linux实时化方法有着一定的借鉴意义。最后,本文对所做的工作进行了总结,并进一步明确了以后的研究重点和努力方向。