一种Linux实时化方法研究与实现

一种Linux实时化方法研究与实现

论文摘要

近年来实时操作系统在国防、工业控制、通讯等领域得到了广泛的应用,也是一个研究的热点和重点。但是商用的实时操作系统由于其价格昂贵、源代码不开放等,使其在应用中受到了很大的限制。Linux自发布以来,因为其源代码开放等特点,得到了快速地发展和广泛地应用。Linux2.6通过采用抢占式内核、O(1)调度算法等提高了对实时任务的处理能力。但是,它仍不是一个实时内核。因此需要对Linux2.6进行实时化改进,提高其实时性能以满足各种实时环境下的应用。细化系统时钟粒度、改善内核调度器的调度性能、增强内核抢占性能是Linux实时化的主要方法。本文在深入研究Linux2.6内核代码的基础上,着重对Linux的时钟机制和调度机制进行了详细分析和总结,并对其在实时应用上的不足加以改进。在细化时钟粒度方面,借鉴了KURT-Linux的UTIME机制,将单次触发时钟模式(one-shot)引入到2.6内核中,实现了一种混合时钟模式,达到了微秒级的定时精度,较好地解决了时钟精度问题。Linux2.6对实时进程的调度算法简单,不能满足实时任务的时限要求。本文结合不同调度算法在不同的系统负载情况下的性能表现,提出了基于阈值的分级调度算法(CSBOT),在系统轻载时采用基于阈值的LSF调度算法,系统超载时使用关键度/紧急度优先调度算法,兼顾了轻载时的系统利用率和超载时重要任务的执行。最后的测试表明,修改后的内核能得到微秒级的定时精度。基于阈值的分级调度算法在轻载时具有和经典EDF算法相同的系统利用率,在超载时能保证重要任务的执行,实现性能的优雅降级,有效地增强了Linux系统的实时调度能力。

论文目录

  • 摘要
  • Abstract
  • 1 绪论
  • 1.1 研究背景和意义
  • 1.2 国内外研究现状
  • 1.3 论文的目的与安排
  • 2 实时操作系统
  • 2.1 实时操作系统
  • 2.1.1 实时系统定义
  • 2.1.2 实时系统分类
  • 2.1.3 实时系统的特点
  • 2.2 实时调度算法
  • 2.3 实时操作系统与通用操作系统比较
  • 3 Linux 操作系统
  • 3.1 Linux 系统结构
  • 3.1.1 进程管理
  • 3.2 Linux2.6 的调度算法
  • 3.2.1 运行队列
  • 3.2.2 O(1)调度算法
  • 3.2.3 调度策略
  • 3.2.4 调度器
  • 3.3 时钟与定时器
  • 3.3.1 时钟源
  • 3.3.2 Linux 定时器
  • 3.4 Linux 实时化典型方法
  • 3.4.1 Linux 实时应用的局限
  • 3.4.2 Linux 实时化典型方法
  • 3.4.3 Linux 实时化典型代表
  • 4 Linux 实时化改进
  • 4.1 高精度时钟
  • 4.1.1 时钟中断处理
  • 4.1.2 定时器组织
  • 4.1.3 性能分析
  • 4.2 调度机制的改进
  • 4.2.1 LSF 算法分析
  • 4.2.2 基于负载的分级调度
  • 4.2.3 CSBOT 算法在Linux 中的实现
  • 4.2.4 改进的调度系统代码分析
  • 4.2.5 改进后的调度系统性能分析
  • 5 性能测试
  • 5.1 主要性能指标
  • 5.2 周期性实时任务
  • 5.3 改进后的高精度定时器性能测试
  • 5.4 改进后的实时调度性能测试
  • 5.4.1 测试数据
  • 结论
  • 参考文献
  • 攻读硕士学位期间发表学术论文情况
  • 致谢
  • 相关论文文献

    标签:;  ;  ;  

    一种Linux实时化方法研究与实现
    下载Doc文档

    猜你喜欢