摘要 | 第5-6页 |
ABSTRACT | 第6-7页 |
第一章 绪论 | 第13-17页 |
1.1 课题来源和研究背景 | 第13-14页 |
1.1.1 课题来源 | 第13页 |
1.1.2 研究背景 | 第13-14页 |
1.2 研究现状 | 第14页 |
1.3 课题主要内容和文章结构 | 第14-17页 |
第二章 Linux内核可抢占性分析 | 第17-31页 |
2.1 Linux进程概述 | 第17-21页 |
2.1.1 进程描述符 | 第17-21页 |
2.2 可抢占内核概述 | 第21-22页 |
2.3 抢占原理和基础函数 | 第22-31页 |
2.3.1 主动抢占 | 第23-28页 |
2.3.2 自愿抢占 | 第28-31页 |
第三章 Linux内核进程调度算法分析 | 第31-43页 |
3.1 关键数据结构 | 第31-33页 |
3.1.1 调度器类 | 第31-32页 |
3.1.2 可运行队列 | 第32页 |
3.1.3 调度实体 | 第32-33页 |
3.2 Linux调度器概述 | 第33-37页 |
3.2.1 主调度器函数 | 第35-36页 |
3.2.2 周期性调度器函数 | 第36-37页 |
3.3 CFS调度算法 | 第37-41页 |
3.3.1 CFS可运行队列 | 第38页 |
3.3.2 CFS虚拟时间 | 第38-40页 |
3.3.3 CFS函数操作 | 第40-41页 |
3.4 实时调度算法 | 第41-43页 |
3.4.1 实时可运行队列 | 第41-42页 |
3.4.2 实时调度器的操作 | 第42-43页 |
第四章 Linux实时性改进技术分析 | 第43-59页 |
4.1 概述 | 第43页 |
4.2 调度框架改进方案 | 第43-47页 |
4.2.1 Slot-Based Task-Splitting调度框架 | 第43-44页 |
4.2.2 Linux3.5.4 下的调度框架 | 第44-47页 |
4.2.3 比较 | 第47页 |
4.3 通用调度算法延迟改进方案 | 第47-51页 |
4.3.1 使用mutex实现spinlock | 第48页 |
4.3.2 中断线程化 | 第48-49页 |
4.3.3 优先级继承 | 第49-50页 |
4.3.4 延后操作 | 第50页 |
4.3.5 减少延迟的策略 | 第50-51页 |
4.4 调度算法本身的改进 | 第51-56页 |
4.4.1 硬实时调度算法 | 第51-55页 |
4.4.2 软实时调度算法 | 第55页 |
4.4.3 比较 | 第55-56页 |
4.5 内核接. API的改进方案 | 第56-59页 |
4.5.1 RTAI | 第56-57页 |
4.5.2 Xenomai | 第57-59页 |
第五章 Linux实时调度算法改进 | 第59-75页 |
5.1 针对的应用模式 | 第59页 |
5.2 实时调度算法设计 | 第59-60页 |
5.3 算法具体实现 | 第60-64页 |
5.3.1 基于关联度的算法实现 | 第60-62页 |
5.3.2 Weighted round robin算法实现 | 第62-64页 |
5.4 测试验证 | 第64-73页 |
5.4.1 测试环境 | 第64-65页 |
5.4.2 功能性测试 | 第65-70页 |
5.4.3 性能测试 | 第70-73页 |
5.5 对比说明 | 第73-74页 |
5.6 结论 | 第74-75页 |
第六章 总结与展望 | 第75-77页 |
参考文献 | 第77-79页 |
致谢 | 第79-80页 |