基于PHPA的内存大小页动态调整技术
| 摘要 | 第4-5页 |
| Abstract | 第5-6页 |
| 第1章 绪论 | 第12-16页 |
| 1.1 课题背景 | 第12-13页 |
| 1.2 本文的工作与创新点 | 第13-14页 |
| 1.3 本文的内容组织 | 第14-15页 |
| 1.4 本章小结 | 第15-16页 |
| 第2章 相关背景知识及研究现状 | 第16-32页 |
| 2.1 Linux内存管理技术 | 第16-24页 |
| 2.1.1 内存管理 | 第17-23页 |
| 2.1.2 内存分配/释放 | 第23-24页 |
| 2.2 PHPA大页管理框架 | 第24-25页 |
| 2.3 页迁移技术 | 第25-26页 |
| 2.3.1 页迁移技术介绍 | 第25-26页 |
| 2.3.2 页迁移的目的和模式 | 第26页 |
| 2.4 内存热插拔 | 第26-27页 |
| 2.5 用户空间和内核空间通信方式 | 第27-29页 |
| 2.5.1 内核启动参数 | 第27-28页 |
| 2.5.2 模块参数 | 第28页 |
| 2.5.3 sysfs | 第28页 |
| 2.5.4 sysctl | 第28页 |
| 2.5.5 系统调用 | 第28-29页 |
| 2.5.6 netlink | 第29页 |
| 2.5.7 procfs | 第29页 |
| 2.6 研究现状 | 第29-31页 |
| 2.6.1 Linux大页介绍及设计目的 | 第30页 |
| 2.6.2 hugetlbfs | 第30页 |
| 2.6.3 透明大页 | 第30-31页 |
| 2.7 本章小结 | 第31-32页 |
| 第3章 系统关键部分设计 | 第32-45页 |
| 3.1 需求场景分析 | 第32-34页 |
| 3.2 总体设计 | 第34-35页 |
| 3.3 大页控制模块设计 | 第35-38页 |
| 3.4 热插拔模块设计 | 第38-42页 |
| 3.4.1 proc文件系统 | 第40-41页 |
| 3.4.2 用户程序设计 | 第41-42页 |
| 3.5 大页迁移模块设计 | 第42-44页 |
| 3.6 本章小结 | 第44-45页 |
| 第4章 系统具体实现 | 第45-57页 |
| 4.1 整体工作流程 | 第45-46页 |
| 4.2 热插拔 | 第46-51页 |
| 4.2.1 proc创建文件 | 第46-47页 |
| 4.2.2 小页热插拔 | 第47-50页 |
| 4.2.3 大页热插拔 | 第50-51页 |
| 4.3 大页控制模块 | 第51-52页 |
| 4.4 大页迁移 | 第52-56页 |
| 4.4.1 反向映射机制 | 第52-53页 |
| 4.4.2 页的可迁移性 | 第53-54页 |
| 4.4.3 大页迁移流程 | 第54-56页 |
| 4.5 本章小结 | 第56-57页 |
| 第5章 系统测试与分析 | 第57-68页 |
| 5.1 测试环境部署 | 第57-58页 |
| 5.1.1 测试环境 | 第57页 |
| 5.1.2 部署安装 | 第57-58页 |
| 5.2 功能测试 | 第58-62页 |
| 5.2.1 单元测试 | 第58-59页 |
| 5.2.2 整体测试 | 第59-62页 |
| 5.3 性能测试 | 第62-67页 |
| 5.3.1 PHPA大页框架和原生Linux对比 | 第62-64页 |
| 5.3.2 小页转大页性能测试 | 第64-66页 |
| 5.3.3 大页转小页性能测试 | 第66-67页 |
| 5.4 本章小结 | 第67-68页 |
| 第6章 总结与展望 | 第68-70页 |
| 6.1 本文工作总结 | 第68-69页 |
| 6.2 未来工作 | 第69-70页 |
| 参考文献 | 第70-72页 |
| 攻读硕士学位期间主要的研究成果 | 第72-73页 |
| 致谢 | 第73页 |