摘要 | 第5-6页 |
ABSTRACT | 第6-7页 |
缩略语对照表 | 第10-14页 |
第一章 绪论 | 第14-18页 |
1.1 研究背景 | 第14-15页 |
1.2 相关研究工作 | 第15-17页 |
1.3 全文组织结构 | 第17-18页 |
第二章 背景技术简介 | 第18-28页 |
2.1 存储介质简介 | 第18-22页 |
2.1.1 机械硬盘(HDD) | 第18-19页 |
2.1.2 固态硬盘(SSD) | 第19-20页 |
2.1.3 机械硬盘与固态硬盘的比较 | 第20-22页 |
2.2 存储系统缓存技术 | 第22-24页 |
2.2.1 缓存的特点 | 第22页 |
2.2.2 缓存的工作原理 | 第22-23页 |
2.2.3 缓存数据替换算法 | 第23页 |
2.2.4 缓存系统存在的目的 | 第23-24页 |
2.3 混合存储系统 | 第24-25页 |
2.3.1 基于DRAM与机械硬盘的混合存储 | 第24-25页 |
2.3.2 基于NVRAM与机械硬盘的混合存储 | 第25页 |
2.3.3 基于高低转速磁盘的混合存储 | 第25页 |
2.3.4 基于固态硬盘和机械硬盘的混合存储 | 第25页 |
2.4 缓存算法评估 | 第25-28页 |
第三章 关键实现技术 | 第28-44页 |
3.1 IO捕获 | 第28-31页 |
3.1.1 Windows驱动程序模型(WDM) | 第28-29页 |
3.1.2 IRP和驱动程序堆栈 | 第29-30页 |
3.1.3 驱动程序分发函数 | 第30页 |
3.1.4 存储卷过滤器驱动 | 第30-31页 |
3.2 缓存页面替换算法 | 第31-34页 |
3.2.1 基于访问时间的LRU(Least Recently Used)系列替换算法 | 第32页 |
3.2.2 基于使用频度的LFU(Least Frequently Used)系列替换算法 | 第32-33页 |
3.2.3 综合考虑时间和访问频度的替换算法 | 第33-34页 |
3.3 缓存映射策略 | 第34-37页 |
3.4 缓存索引数据结构 | 第37-40页 |
3.4.1 单级有序索引 | 第38页 |
3.4.2 多级有序索引 | 第38页 |
3.4.3 B+ 树索引 | 第38-40页 |
3.5 回写策略 | 第40-44页 |
3.5.1 写穿法(Write Through) | 第40页 |
3.5.2 写回法(Write Back) | 第40-42页 |
3.5.3 写一次法(Write Once) | 第42-44页 |
第四章 设计实现 | 第44-62页 |
4.1 系统整体架构 | 第44-45页 |
4.2 缓存算法通用接 | 第45-53页 |
4.2.1 数据结构 | 第46-47页 |
4.2.2 外部函数接 | 第47-51页 |
4.2.3 内部函数接 | 第51-53页 |
4.3 IO操作捕获函数逻辑 | 第53-57页 |
4.3.1 默认分发函数 | 第53页 |
4.3.2 电源事件分发函数 | 第53-54页 |
4.3.3 IOCTL分发函数 | 第54页 |
4.3.4 PnP事件分发函数 | 第54-56页 |
4.3.5 读写分发函数 | 第56-57页 |
4.4 对超长缓存块的支持 | 第57-59页 |
4.5 用户配置工具 | 第59-62页 |
第五章 系统测试与结果分析 | 第62-70页 |
5.1 测试平台 | 第62页 |
5.2 测试方法 | 第62-64页 |
5.2.1 系统正确性验证 | 第62页 |
5.2.2 系统性能测试 | 第62-64页 |
5.3 测试结果 | 第64-67页 |
5.3.1 缓存命中率 | 第64-65页 |
5.3.2 写穿(Write Through)模式下的测试结果 | 第65-66页 |
5.3.3 写回(Write Back)策略时的测试结果 | 第66-67页 |
5.4 结果讨论 | 第67-70页 |
5.4.1 HDD性能提升比例 | 第67页 |
5.4.2 与商业软件比较 | 第67-70页 |
第六章 总结与展望 | 第70-72页 |
6.1 全文总结 | 第70-71页 |
6.2 研究展望 | 第71-72页 |
参考文献 | 第72-75页 |
致谢 | 第75-76页 |
作者简介 | 第76-77页 |