论文部分内容阅读
实时操作系统在当前的各个领域得到广泛应用,越来越引起人们的重视。在众多的实时操作系统中,基于linux的实时操作系统,由于开放源代码,以及linux系统的稳定性,日益受到人们的欢迎。但linux本身并不是真正的实时操作系统,所以必须对其进行实时化提升。而将Linux进行实时化改造,是国内外计算机界的研究热点之一。目前在改进Linux的实时性能的方法中,主要方法有:兼容内核途径,双内核途径,核心内核途径,资源内核途径。而核心内核途径的主要方法有细化时钟粒度,增强Linux内核的抢占性,改善Linux内核实时调度器的调度策略等,其中进程调度算法是影响系统实时性能的重要因素,所以经过比较研究,本文采取了改善Linux内核实时调度器的调度策略的方法对Linux进行实时性提升。本文研究了当前较新版本的Linux内核(2.6.18)的体系结构以及其内部的依赖关系,分析了Linux头文件sched.h中进程状态,以及task_struct结构定义的进程调度策略,并重点分析进程调度机制,比如:FIFO(先来先服务调度)和RR(时间片轮转调度)两种调度策略,并对其调度算法作了详细的研究。本文研究了Linux内核的调度器设计,研究了RM算法(速率单调调度)和EDF算法(最早死线优先算法)的核心思想。本文在Linux内核中添加了RMS调度器和EDF调度器,RMS调度器让Linux中一个具有较小周期的任务可以分配到一个较高的优先级,EDF调度器对可调度负载进行优化,这两种调度器取代了FIFO和RR对实时任务进行调度,同时还为Linux设计了细粒度定时器,把系统时钟的节拍的粒度减小,较大的提升了Linux的实时性能。linux的实时改进最后的实现需要重新编译Linux内核。本文对内核进行裁减、配置,保证系统稳定,最后通过测试证明了改造后内核具备实时要求。