论文部分内容阅读
目前,实时操作系统在各个领域的广泛应用,越来越引起人们的重视。在众多的实时操作系统中,基于linux的实时操作系统,由于开放源代码,以及linux系统的稳定性,日益受到人们的欢迎。但linux本身并不是真正的实时操作系统,所以必须对其进行实时化提升。而将Linux进行实时化改造,是国内外计算机界的研究热点之一。因而,基于Linux开发一个开放的、标准的、高效廉价的实时操作系统是完全可行的,如何增强Linux的实时性是目前实时操作系统研究的一个重点。自Linux2.6内核2003年底发布以来,已经被大量测试和实际应用且已被证明其是一个高效稳定的内核。与Linux2.4内核相比,Linux2.6内核采用了一些新的技术使得实时性有了很大的提高,如可抢占式内核、新的O(1)调度算法等,尽管实时操作系统的开发者可以从这些改变中受益,然而,Linux2.6仍然不是一个实时内核。但是这些改变使得将该内核转变为RTOS成为可能,因而,有必要继续对Linux2.6内核进行实时化改造,进一步提高其实时性。为了构建适合于电能量采集终端的强实时性Linux操作系统,本文研究了当前较新版本的Linux内核(2.6.22)的体系结构以及内部模块的依赖关系,并分析了Linux实时性不强的原因,然后在此基础之上研究了改造Linux内核实时性常见的方法,并给出了具体的改造思路。进而,本文分别从实时性改进的两大方面对现有的Linux内核进行改造:首先,本文从软实时性改造的角度出发,按照核心内核法的改造思路,在现有的Linux内核的调度机制和时钟机制进行分析和研究的在此基础之上,在原有O(1)算法的前提下引入LSF算法对调度策略进行改进。与此同时,采用APIC编程的方式对原有的粗粒度的时钟机制进行改造。其次,为了提高Linux本身对硬实时性,本文按照双核模型的改造思想,利用RTAI技术对现有的Linux进行了实时性改造。最后,本文对改造后的Linux内核进行了重新的配置和编译,从改造的三个方面分别进行了相应的测试并证明了改造后内核具备实时要求,并最终将其应用于低压用户电能量采集终端软件开发平台的搭建之中。