摘要 | 第5-7页 |
ABSTRACT | 第7-8页 |
第一章 绪论 | 第13-17页 |
1.1 背景及意义 | 第13-14页 |
1.2 国内外研究现状和发展态势 | 第14-15页 |
1.3 研究内容及主要工作 | 第15-16页 |
1.4 章节安排 | 第16-17页 |
第二章 相关技术和基础理论介绍 | 第17-23页 |
2.1 Linux buddy内存系统技术 | 第17页 |
2.2 tcmalloc内存系统 | 第17-19页 |
2.3 事务内存技术 | 第19-22页 |
2.3.1 问题提出 | 第19页 |
2.3.2 基本原理 | 第19-20页 |
2.3.3 相关特性 | 第20-22页 |
2.4 本章小结 | 第22-23页 |
第三章 总体设计 | 第23-53页 |
3.1 系统总体说明 | 第23页 |
3.2 需求分析 | 第23-26页 |
3.2.1 功能性需求 | 第23-25页 |
3.2.2 非功能性需求 | 第25-26页 |
3.3 NVM管理器总体设计 | 第26-41页 |
3.3.1 总体说明 | 第26-28页 |
3.3.2 内存布局及初始化 | 第28-30页 |
3.3.2.1 内存布局 | 第28-29页 |
3.3.2.2 NVM总描述符 | 第29页 |
3.3.2.3 NVM格式化流程 | 第29-30页 |
3.3.2.4 系统初始化流程 | 第30页 |
3.3.3 内存池管理 | 第30-31页 |
3.3.4 日志以及事务管理 | 第31-33页 |
3.3.4.1 日志元数据 | 第31-32页 |
3.3.4.2 日志管理器 | 第32页 |
3.3.4.3 日志结构 | 第32页 |
3.3.4.4 日志写入和读取操作 | 第32-33页 |
3.3.5 页框管理 | 第33-37页 |
3.3.5.1 分配单元描述符 | 第33页 |
3.3.5.2 空闲页框组织管理 | 第33-34页 |
3.3.5.3 页框分配和释放原则 | 第34-35页 |
3.3.5.4 页框分配和释放流程 | 第35-37页 |
3.3.6 对象管理 | 第37-40页 |
3.3.6.1 对象描述符 | 第37-38页 |
3.3.6.2 对象组织管理 | 第38页 |
3.3.6.3 对象分配流程 | 第38-39页 |
3.3.6.4 对象映射流程 | 第39-40页 |
3.3.6.5 对象增长流程 | 第40页 |
3.3.7 故障恢复 | 第40-41页 |
3.4 页面置换总体设计 | 第41-52页 |
3.4.1 总体说明 | 第41-42页 |
3.4.2 解决方案设计 | 第42-44页 |
3.4.3 数学模型建立 | 第44-46页 |
3.4.3.1 置换度模型 | 第44-45页 |
3.4.3.2 页组置换模型 | 第45-46页 |
3.4.4 模块结构 | 第46-49页 |
3.4.5 典型流程分析 | 第49-52页 |
3.4.5.1 页面访问信息统计 | 第49页 |
3.4.5.2 页面置换 | 第49-51页 |
3.4.5.3 缺页中断处理 | 第51-52页 |
3.5 本章小结 | 第52-53页 |
第四章 NVM管理器详细设计与实现 | 第53-91页 |
4.1 模块层次介绍 | 第53-54页 |
4.2 内存池管理模块 | 第54-64页 |
4.2.1 内存池子池实现讲解 | 第56-57页 |
4.2.2 内存池子池元素结构 | 第57-58页 |
4.2.3 内存池子池的组织设计及实现 | 第58-60页 |
4.2.3.1 初始化状态 | 第58-59页 |
4.2.3.2 内存池状态v1 | 第59-60页 |
4.2.3.3 内存池子池状态v2 | 第60页 |
4.2.3.4 内存池状态v3 | 第60页 |
4.2.4 内存池子池分配释放流程 | 第60-63页 |
4.2.4.1 内存池子池分配元素流程 | 第61-62页 |
4.2.4.2 内存池子池释放元素流程 | 第62-63页 |
4.2.5 内存池模块组织及主要流程 | 第63-64页 |
4.2.5.1 内存池模块组织图 | 第63-64页 |
4.2.5.2 内存池元素分配流程 | 第64页 |
4.2.5.3 内存池元素释放流程 | 第64页 |
4.3 页框管理模块 | 第64-80页 |
4.3.1 分配单元描述符 | 第64-65页 |
4.3.2 页框分配算法 | 第65页 |
4.3.3 空闲页框管理模块 | 第65-66页 |
4.3.4 空闲页框链表管理模块 | 第66-68页 |
4.3.5 空闲页框树管理模块 | 第68-71页 |
4.3.6 空闲页框树管理模块主要流程描述 | 第71-73页 |
4.3.6.1 精确查找流程 | 第71-73页 |
4.3.6.2 非精确查找流程 | 第73页 |
4.3.7 页框分配模块 | 第73-77页 |
4.3.8 页框释放模块 | 第77-78页 |
4.3.9 页框操作模块 | 第78-79页 |
4.3.10 空闲页框组织方式 | 第79-80页 |
4.4 对象管理模块 | 第80-84页 |
4.4.1 对象描述符 | 第80页 |
4.4.2 对象哈希表模块 | 第80-82页 |
4.4.3 对象分配释放模块 | 第82页 |
4.4.4 对象映射模块 | 第82-83页 |
4.4.5 对象增长缩减模块 | 第83-84页 |
4.5 事务管理模块 | 第84-90页 |
4.5.1 已修改数据表管理模块 | 第85-86页 |
4.5.2 日志模块 | 第86-89页 |
4.5.3 故障恢复模块 | 第89页 |
4.5.4 事务写流程 | 第89-90页 |
4.6 本章小结 | 第90-91页 |
第五章 页面置换详细设计与实现 | 第91-103页 |
5.1 数据区页面统计信息器 | 第91-92页 |
5.2 页面统计信息收集器 | 第92页 |
5.3 页面统计信息发送器 | 第92-93页 |
5.4 页面访问信息管理器 | 第93-94页 |
5.5 页组划分器 | 第94页 |
5.6 页组筛选器 | 第94-95页 |
5.7 页映射关系管理器 | 第95-96页 |
5.8 页组移动器 | 第96页 |
5.9 页面访问重定向器 | 第96-97页 |
5.10 已提交事务日志管理器 | 第97-100页 |
5.10.1 已提交日志组织方式 | 第99页 |
5.10.2 已提交事务日志管理器结构 | 第99-100页 |
5.11 页面置换管理器 | 第100-102页 |
5.12 本章小结 | 第102-103页 |
第六章 测试 | 第103-108页 |
6.1 测试方案 | 第103-104页 |
6.1.1 测试说明 | 第103页 |
6.1.2 测试环境 | 第103-104页 |
6.2 NVM管理器功能测试 | 第104-105页 |
6.2.1 对象创建测试 | 第104页 |
6.2.2 对象删除测试 | 第104页 |
6.2.3 对象空间增加测试 | 第104-105页 |
6.2.4 对象空间减少测试 | 第105页 |
6.2.5 综合测试 | 第105页 |
6.3 页面置换功能测试 | 第105-106页 |
6.4 性能测试 | 第106-107页 |
6.5 本章小结 | 第107-108页 |
第七章 总结与展望 | 第108-110页 |
致谢 | 第110-111页 |
参考文献 | 第111-114页 |
攻硕期间取得的研究成果 | 第114-115页 |