论文部分内容阅读
操作系统是计算机中最重要的组成部分之一,它不仅为用户提供友好的交互接口,还要合理的组织、分配计算机的硬/软件资源,使整个计算机系统有条不紊的运行。而嵌入式系统领域所使用的操作系统除具备通用操作系统所必备的功能外,还应具有一定的实时性。随着嵌入式系统研究的深入,嵌入式操作系统实时性也成为当前的热门研究对象。本文便是以嵌入式系统实时性为着眼点,针对Linux操作系统的进程调度进行实时性改造,并将改进后的操作系统移植到相应的硬件处理平台上。首先,论文介绍了课题研究的背景与意义,分析了Linux实时性的缺陷,并对国内外实时Linux改造现状及实时化改造成果进行分析总结。其后,论文以Linux2.6.22内核版本为依据,分析了2.6内核的调度机制、调度策略和一些与调度相关的数据结构。着重对Linux2.6内核中的经典调度算法——O(1)算法和系统自带的三种基本的调度策略进行分析,同时也分析了这三种调度策略在实时性方面的不足。在此基础之上,本文对实时调度理论中的两个经典算法——RM调度算法和LSF调度算法,进行了研究、改进与实现。在分析了RM算法的可调度性和实现RM算法的假设条件后,提出了RM算法实现想法,并根据该想法对Linux2.6.22内核调度器进行了实时性改造,使Linux2.6.22内核能更好的调度周期任务。LSF是基于“裕度”的经典动态优先级调度算法。但该算法本身存在的“颠簸”的缺陷,这影响了算法的效率。本文在对LSF算法深入分析的基础之上针对算法的缺陷进行了改进,提出了基于跃变期的LSF算法,并在Linux2.6.22内核中实现了改进后的算法,使改进后的内核具有了动态实时调度策略。对内核调度器进行修改后,本文又对Linux内核文件和启动过程进行了详细分析,配置了嵌入式文件系统,对内核裁剪、编译,最终将改进后的Linux内核移植到工控器开发板上。最后,论文利用流行的内核测试工具LTT(Linux Trace Toolkit)来完成对修改后的Linux内核实时性指标的测试,并设计了相关实验来说明系统的调度性能的提高。