论文部分内容阅读
在当今世界,有很多与时间因素相关的应用需求,其计算的正确性不仅仅取决于处理逻辑的正确与否,还取决于结果产生的时间,这种类型的任务被人们定义为实时任务。实时系统在这种需求下应运而生。目前,实时系统已经被广泛应用于军事和民用领域。实时操作系统是其中的核心,随着硬件性能的不断提高,实时应用不仅对操作系统的性能,而且对其他功能也提出了较高的要求,例如图形界面、网络通讯等要求。现在的商业化的实时操作系统种类繁多,但其缺点不是功能过于简单就是价格过于昂贵。在实时操作系统领域,缺少一个标准的、开放的、有广泛支持的、高效又廉价的实时操作系统,因此,很多机构开始进行通用操作系统的实时化的研究。Linux操作系统因其具有开放源代码、广泛的硬件支持、稳定高效的内核、优秀齐备的开发工具链等等优点,使得它在实时化领域倍受关注。但是Linux是一个分时的通用操作系统,在任务调度方面采用的是公平原则,这样就限制了Linux的实时化应用,必须对其进行改进,以满足实时的要求。本论文的主要研究内容和工作如下:①研究了Linux2.6内核的任务调度相关的内核结构,调度原理,分析了重要的调度函数,分析了Linux操作系统在实时应用上的优势和局限性;②研究了RTAI的系统结构,调度原理,分析了RTAI所采用的调度算法RM和EDF,在分析的基础上指出了EDF算法的缺陷和RTAI任务组织的不足;③提出了将LLF调度算法和O(1)调度算法引入RTAI,并在分析的基础上给出了相应的实现形式,并构建了一套实时的Linux操作系统;④在分析了实时操作系统的测试标准的基础上,对改进后的RTAI进行了功能测试和性能测试,并对结果进行了分析。综上所述,本文针对RTAI实时调度的EDF调度算法和任务的组织形式的缺陷,进行了改进并给出了相应的实现方式,成功解决了调度器在高负载情况下大量任务得不到处理的情况。最后构造了一个基于Linux和RTAI的实时操作系统。经过理论分析和实验结果证明:相关改进是正确、有效的,扩展后的RTAI能够依照所设定的调度算法对实时任务进行正确调度,RTAI的实时性能也得到了提升。