多处理器下的Linux实时化技术研究

多处理器下的Linux实时化技术研究

论文摘要

随着硬件性能的提高,实时应用对操作系统的性能和功能也提出了越来越高的要求。而现有商业RTOS(Real-Time Operating System)不是功能过于简单就是价格过于昂贵,缺少一个开放的、标准的、有广泛支持的、高效而又廉价的实时操作系统,因此很多机构开始研究将功能强大的通用操作系统改造成实时操作系统。Linux具有功能强大、免费、开放源码、支持多种硬件平台、模块化设计、函数接口符合国际和工业标准等特点,成为研究的首选操作系统。但是Linux的调度机制决定了它是一个分时系统,其不可抢占的内核、粗糙的时钟粒度、频繁的关中断、虚存和其它缓冲机构的设置,使得Linux的实时性不强。对Linux进行实时改造主要有两种技术方案。一种是对标准Linux内核进行直接修改,通过减小操作系统的调度延迟,优化Linux的实时性能,达到软实时的标准;另一种是采用双内核方案,增加一个实时内核,所有有实时要求的任务都在这个实时内核上运行,标准Linux内核作为这个实时内核优先级最低的一个进程,这种方式可以实现硬实时。本文研究了采用双内核结构对Linux进行实时改造的典型方案RTAI,分析了其基本原理和实现机制,并且生成和测试了其实时内核原型,进而指出了其存在的不足,尤其是调度算法方面的不足。针对其多处理器调度算法存在的不足,提出了一种多处理器分组实时调度算法,该调度算法充分结合了多处理器局部调度算法和全局调度算法的优点,并且弥补了局部调度算法在M个处理器系统中优先级最高的M个任务可能得不到优先调度的不足,同时也克服了全局调度算法中存在的调度时间过长的问题。最后在RTAI内核中实现了RM(单调速率)和EDF(最早截至时间优先)调度算法以及多处理器分组调度算法。RTAI可以将任务分配到指定的处理器分组,同时各个分组也可以选择各自的调度算法。验证表明,多处理器分组调度算法能有效的提高RTAI在多处理器系统中的实时性,扩大了RTAI的应用范围。

论文目录

  • 摘要
  • Abstract
  • 第一章 引言
  • 1.1 课题的背景
  • 1.2 课题的研究意义
  • 1.3 国内外研究现状
  • 1.3.1 RTLinux
  • 1.3.2 RTAI
  • 1.3.3 KURT
  • 1.3.4 Hard-hat Linux
  • 1.4 课题来源与研究内容
  • 1.5 论文组织
  • 第二章 标准Linux的特性研究
  • 2.1 Linux的发展回顾
  • 2.2 Linux与GNU公用许可证(GPL)
  • 2.3 Linux系统的构成
  • 2.4 Linux操作系统的体系结构
  • 2.4.1 什么是操作系统的体系结构
  • 2.4.2 操作系统体系结构的分类
  • 2.4.2.1 微内核(Microkernel)
  • 2.4.2.2 单内核(Monolithic Kernel)
  • 2.4.3 Linux内核体系结构
  • 2.5 标准Linux操作系统的实时性制约因素分析
  • 2.5.1 Linux的分时特性
  • 2.5.2 Linux系统实时应用存在的问题
  • 2.5.3 Linux的实时性能测试
  • 2.5.3.1 中断延迟测试
  • 2.5.3.2 上下文切换测试
  • 2.6 Linux2.6增强的实时性
  • 2.6.1 O(1)调度器
  • 2.6.2 可抢占式内核
  • 2.6.3 存储管理
  • 2.6.3.1 引入内存池机制
  • 2.6.3.2 改善虚拟内存
  • 2.6.3.3 共享内存的改进
  • 2.7 本章小结
  • 第三章 几种流行的Linux实时方案研究
  • 3.1 标准内核改造方案
  • 3.1.1 低延迟补丁
  • 3.1.2 完全可抢占内核
  • 3.1.3 性能分析
  • 3.1.4 标准Linux内核实时化改造
  • 3.1.4.1 标准内核实时化改造实例——Kurt-Linux
  • 3.2 双内核实时化方案
  • 3.2.1 双内核方案的原理
  • 3.2.2 采用双内核的操作系统实例
  • 3.2.2.1 RT-Linux
  • 3.2.2.2 RTAI
  • 3.3 Linux实时化方案评价
  • 3.4 本章小结
  • 第四章 Linux RTAI实时方案的技术分析
  • 4.1 Linux可加载内核模块机制
  • 4.2 RTAI原理与机制
  • 4.3 ADEOS
  • 4.4 RTAI主模块的实现
  • 4.5 RTAI的其它功能模块
  • schedmodule'>4.5.1 任务调度模块rtaischedmodule
  • fifosmodule'>4.5.2 命名管道模块rtaififosmodule
  • shmmodule'>4.5.3 RTAI共享内存模块rtaishmmodule
  • lxrtmodule'>4.5.4 LXRT模块rtailxrtmodule
  • 4.6 RTAI下的实时任务
  • 4.7 RTAI的实时性能测试
  • 4.8 本章小结
  • 第五章 多处理器实时调度算法的研究
  • 5.1 引言
  • 5.2 局部调度算法
  • 5.3 全局调度算法
  • 5.4 局部调度与全局调度算法的比较
  • 5.4.1 全局调度算法的优点
  • 5.4.1.1 支持共享资源任务调度
  • 5.4.1.2 支持动态任务调度
  • 5.4.1.3 时间隔离
  • 5.4.1.4 容错和超载
  • 5.4.1.5 支持非迁移实时任务调度
  • 5.4.2 全局调度算法的缺点
  • 5.4.2.1 调度时间
  • 5.4.2.2 上下文切换时间
  • 5.5 处理器分组调度算法
  • 5.5.1 APPPF调度算法
  • 5.5.1.1 APPPF算法描述
  • 5.5.1.2 算法流程图
  • 5.5.2 NAPPPF调度算法
  • 5.5.2.1 NAPPPF算法描述
  • 5.6 处理器分组调度算法与全局调度算法的比较
  • 5.7 仿真验证
  • 5.8 本章小结
  • 第六章 RTAI的多处理器实时调度改进
  • 6.1 多处理器下的RTAI调度机制
  • 6.2 多处理器下RTAI实时调度算法的改进
  • 6.2.1 RMS调度算法的实现
  • 6.2.2 EDF调度算法的实现
  • 6.2.3 分组调度算法的实现
  • 6.2.4 RTAI调度扩展的部分源代码
  • 6.3 测试验证
  • 6.3.1 搭建测试平台
  • 6.3.2 各个实时任务的主函数
  • 6.3.3 内核模块加载和卸载部分
  • 6.3.4 Linux下的接收进程(Show进程)
  • 6.3.5 测试结果
  • 6.4 本章小节
  • 第七章 结束语
  • 7.1 论文工作总结
  • 7.2 论文研究的主要贡献与创新
  • 7.3 不足与展望
  • 致谢
  • 参考文献
  • 攻硕期间取得的研究成果
  • 相关论文文献

    标签:;  ;  

    多处理器下的Linux实时化技术研究
    下载Doc文档

    猜你喜欢