摘要 | 第3-4页 |
Abstract | 第4-5页 |
1 绪论 | 第10-15页 |
1.1 研究背景与意义 | 第10-11页 |
1.1.1 研究背景 | 第10-11页 |
1.1.2 研究意义 | 第11页 |
1.2 研究现状 | 第11-13页 |
1.2.1 直接修改内核方案 | 第12-13页 |
1.2.2 双内核方案 | 第13页 |
1.3 文章主要内容及文章结构 | 第13-15页 |
2 实时操作系统 | 第15-26页 |
2.1 基本概念 | 第15-17页 |
2.1.1 实时系统概念 | 第15页 |
2.1.2 实时系统分类 | 第15-16页 |
2.1.3 实时操作系统 | 第16页 |
2.1.4 实时操作系统特性 | 第16-17页 |
2.2 实时操作系统与分时操作系统区别 | 第17-18页 |
2.2.1 分时操作系统设计原则 | 第17页 |
2.2.2 实时操作系统设计原则 | 第17页 |
2.2.3 实时操作系统与分时操作系统差别 | 第17-18页 |
2.3 实时操作系统调度算法 | 第18-21页 |
2.3.1 非抢占(Non-Preemptive)调度 | 第19-20页 |
2.3.2 可抢占(Preemptive)调度 | 第20页 |
2.3.3 静态(Static)优先级调度 | 第20-21页 |
2.3.4 动态(Dynamic)优先级调度 | 第21页 |
2.4 主流的Linux实时性改造方案 | 第21-25页 |
2.4.1 RED-Linux(Real-Time and Embedded Linux) | 第21-22页 |
2.4.2 Kurt-Linux(Kansas University Real-Time Linux) | 第22页 |
2.4.3 RT-Linux(Real Time Linux) | 第22-23页 |
2.4.4 RTAI(Real-Time Application Interface) | 第23-24页 |
2.4.5 Xenomai | 第24-25页 |
2.5 本章小结 | 第25-26页 |
3 Linux内核进程调度机制 | 第26-40页 |
3.1 进程调度器概述 | 第26-30页 |
3.1.1 模块化调度框架 | 第26-28页 |
3.1.2 进程和调度实体 | 第28-29页 |
3.1.3 可运行队列 | 第29页 |
3.1.4 优先级 | 第29-30页 |
3.2 CFS进程调度器 | 第30-35页 |
3.2.1 RSDL(RotatingStaircaseDeadline)调度器 | 第30-31页 |
3.2.2 CFS调度器概述 | 第31-32页 |
3.2.3 CFS调度器原理 | 第32页 |
3.2.4 CFS调度周期 | 第32-33页 |
3.2.5 虚拟时间 | 第33-34页 |
3.2.6 调度器工作 | 第34-35页 |
3.3 实时调度器 | 第35-37页 |
3.3.1 实时调度器概述 | 第35页 |
3.3.2 实时可运行队列 | 第35-36页 |
3.3.3 实时可运行队列操作 | 第36-37页 |
3.4 Linux在SMP系统中的负载均衡 | 第37-39页 |
3.4.1 Linux内核SMP负载均衡概述 | 第37页 |
3.4.2 实时进程负载均衡 | 第37-38页 |
3.4.3 普通进程负载均衡 | 第38-39页 |
3.5 本章小结 | 第39-40页 |
4 Linux实时性改造 | 第40-51页 |
4.1 制约Linux实时性的因素 | 第40-42页 |
4.1.1 Linux内核不完全可抢占 | 第40页 |
4.1.2 关闭中断 | 第40-41页 |
4.1.3 时钟粒度过粗 | 第41页 |
4.1.4 进程调度 | 第41页 |
4.1.5 优先级反转 | 第41页 |
4.1.6 虚拟内存 | 第41-42页 |
4.2 Linux实时抢占补丁 | 第42-45页 |
4.2.1 互斥锁的实现 | 第42-43页 |
4.2.2 优先级继承 | 第43-44页 |
4.2.3 中断线程化 | 第44-45页 |
4.2.4 高精度时钟 | 第45页 |
4.3 基于龙芯平台的实时性改造 | 第45-50页 |
4.3.1 龙芯平台概述 | 第45-46页 |
4.3.2 龙芯上的内核抢占 | 第46-47页 |
4.3.3 龙芯上的中断线程化 | 第47-49页 |
4.3.4 龙芯上的高精度时钟 | 第49页 |
4.3.5 龙芯上合理选择配置选项 | 第49-50页 |
4.4 本章小结 | 第50-51页 |
5 EDF调度实现与性能测试 | 第51-83页 |
5.1 EDF调度算法 | 第51-59页 |
5.1.1 EDF调度算法概述 | 第51-53页 |
5.1.2 CBS算法介绍 | 第53-55页 |
5.1.3 EDF+CBS算法实现 | 第55-59页 |
5.2 EDF调度在SMP系统中的扩展 | 第59-73页 |
5.2.1 Linux现有的多核调度支持 | 第59-60页 |
5.2.2 SMP系统上的EDF调度 | 第60-62页 |
5.2.3 EDF调度在SMP上的设计 | 第62-63页 |
5.2.4 EDF调度在SMP上的实现 | 第63-73页 |
5.3 Linux性能测试与分析 | 第73-82页 |
5.3.1 评测内容 | 第73页 |
5.3.2 评测环境 | 第73-74页 |
5.3.3 评测工具 | 第74-75页 |
5.3.4 EDF调度方法在单处理器系统 | 第75-78页 |
5.3.5 EDF调度策略在SMP系统上测试 | 第78-79页 |
5.3.6 linux内核延迟测试 | 第79-81页 |
5.3.7 linux上下文切换时间 | 第81-82页 |
5.3.8 linux最大中断延迟 | 第82页 |
5.4 本章小结 | 第82-83页 |
6 总结与展望 | 第83-85页 |
6.1 总结 | 第83-84页 |
6.2 展望 | 第84-85页 |
参考文献 | 第85-88页 |
攻读硕士学位期间发表学术论文情况 | 第88-89页 |
致谢 | 第89-90页 |