摘要 | 第5-6页 |
Abstract | 第6-7页 |
第1章 绪论 | 第14-18页 |
1.1 课题背景 | 第14-15页 |
1.2 本文的工作与创新点 | 第15-16页 |
1.3 本文的内容组织方式 | 第16-17页 |
1.4 本章小结 | 第17-18页 |
第2章 背景知识与研究现状 | 第18-31页 |
2.1 Linux内存管理技术 | 第18-23页 |
2.1.1 虚拟内存空间 | 第18-20页 |
2.1.2 分页机制 | 第20页 |
2.1.3 页表与快表 | 第20-21页 |
2.1.4 伙伴系统 | 第21-23页 |
2.2 hugetlbfs文件系统 | 第23-24页 |
2.3 PHPA大页框架 | 第24-25页 |
2.4 Intel EPT机制 | 第25-26页 |
2.4.1 EPT机制概述 | 第25页 |
2.4.2 EPT缺页中断的处理 | 第25-26页 |
2.5 KVM相关知识 | 第26-28页 |
2.5.1 KVM内存管理概述 | 第28页 |
2.6 Linux用户态与内核态通信的方式 | 第28-29页 |
2.7 研究现状 | 第29-30页 |
2.8 本章小结 | 第30-31页 |
第3章 支持PHPA大页框架的KVM新设计与实现 | 第31-55页 |
3.1 需求分析 | 第31-34页 |
3.2 矛盾分析 | 第34-45页 |
3.2.1 虚拟机与宿主机物理页大小不一致的情况 | 第34-35页 |
3.2.2 EPT页表项与宿主机页表项格式 | 第35-36页 |
3.2.3 level的计算 | 第36-38页 |
3.2.4 特殊情况:host_level=2,level=1 | 第38-44页 |
3.2.5 pfn与struct huagepage转换的问题 | 第44页 |
3.2.6 小页与大页的区分 | 第44-45页 |
3.3 KVM改造的设计与具体实现 | 第45-54页 |
3.3.1 level问题的解决 | 第45-52页 |
3.3.2 pfn与struct huagepage转换的问题 | 第52-53页 |
3.3.3 大页与小页的区分 | 第53-54页 |
3.4 本章小结 | 第54-55页 |
第4章 KVM功能增强设计与实现 | 第55-65页 |
4.1 需求分析 | 第55页 |
4.2 冷热页追踪模块设计与实现 | 第55-58页 |
4.2.1 LRU链表 | 第55-56页 |
4.2.2 二次机会算法 | 第56-58页 |
4.2.3 冷热页追踪线程的设计与实现 | 第58页 |
4.3 虚拟机冷热页统计功能设计与实现 | 第58-61页 |
4.4 proc接口层相关实现 | 第61-63页 |
4.5 本章小结 | 第63-65页 |
第5章 系统测试与分析 | 第65-75页 |
5.1 测试环境部署 | 第65-66页 |
5.2 功能测试 | 第66-70页 |
5.3 性能测试与分析 | 第70-74页 |
5.4 本章小结 | 第74-75页 |
第6章 总结与展望 | 第75-77页 |
6.1 对本文工作的总结 | 第75-76页 |
6.2 工作展望 | 第76-77页 |
参考文献 | 第77-79页 |
攻读硕士学位期间主要的研究成果 | 第79-80页 |
致谢 | 第80页 |