摘要 | 第5-7页 |
abstract | 第7-8页 |
第一章 绪论 | 第13-18页 |
1.1 背景及意义 | 第13-14页 |
1.2 国内外研究现状和发展态势 | 第14-16页 |
1.3 研究内容及主要工作 | 第16-17页 |
1.4 章节安排 | 第17-18页 |
第二章 相关技术和基础理论介绍 | 第18-22页 |
2.1 NVM存储器及存储器特性 | 第18-19页 |
2.2 用户态内存管理系统 | 第19-20页 |
2.3 LSA软件事务内存技术 | 第20-21页 |
2.3.1 读事务 | 第20-21页 |
2.3.2 写事务 | 第21页 |
2.4 本章小结 | 第21-22页 |
第三章 总体设计 | 第22-40页 |
3.1 系统功能阐述 | 第22-23页 |
3.2 需求分析 | 第23-26页 |
3.2.1 功能性需求 | 第23-24页 |
3.2.2 非功能性需求 | 第24-26页 |
3.3 内存计算平台层次结构 | 第26-39页 |
3.3.1 总体说明 | 第26-27页 |
3.3.2 初始化及故障恢复模块 | 第27-29页 |
3.3.3 元数据池模块 | 第29-30页 |
3.3.4 NVMalloc事务处理模块 | 第30-32页 |
3.3.5 中心堆模块 | 第32-33页 |
3.3.6 线程堆模块 | 第33-34页 |
3.3.7 用户接口模块 | 第34-35页 |
3.3.8 名字服务模块 | 第35页 |
3.3.9 页面置换支持模块 | 第35页 |
3.3.10 对象基本操作模块 | 第35-36页 |
3.3.11 对象时间戳服务模块 | 第36-37页 |
3.3.12 用户事务模块 | 第37-38页 |
3.3.13 对象迁移模块 | 第38-39页 |
3.4 本章小节 | 第39-40页 |
第四章 用户态内存管理系统(NVMalloc)详细设计与实现 | 第40-67页 |
4.1 系统模块架构说明 | 第40-41页 |
4.2 中心堆模块设计与实现 | 第41-45页 |
4.2.1 中心堆(CLCentralHeap) | 第41-42页 |
4.2.2 中心堆分配单元(CLAllocateUnit) | 第42-43页 |
4.2.3 连续空间的两种管理方案 | 第43-45页 |
4.3 元数据管理模块设计与实现 | 第45-49页 |
4.3.1 描述符池(CLPool) | 第46-47页 |
4.3.2 分配器描述符(CLAllocator)和描述符子池(SubPool) | 第47-49页 |
4.4 全局布局模块设计与实现 | 第49-52页 |
4.4.1 系统初始化流程与全局布局 | 第50-52页 |
4.5 日志管理模块设计与实现 | 第52-54页 |
4.5.1 未分配的日志块管理 | 第52-53页 |
4.5.2 已分配的日志块管理 | 第53-54页 |
4.6 事务模块设计与实现 | 第54-56页 |
4.7 对象资源管理模块设计与实现 | 第56-63页 |
4.7.1 对象描述符 | 第56-57页 |
4.7.2 线程堆描述符 | 第57-59页 |
4.7.3 小对象管理 | 第59-60页 |
4.7.4 大对象管理 | 第60-61页 |
4.7.5 已分配对象管理 | 第61-62页 |
4.7.6 线程堆描述符管理 | 第62-63页 |
4.8 托管线程模块设计与实现 | 第63-65页 |
4.8.1 资源信箱机制 | 第64页 |
4.8.2 托管线程与线程堆环 | 第64-65页 |
4.9 故障恢复模块设计与实现 | 第65-66页 |
4.10 本章小结 | 第66-67页 |
第五章 对象存储系统(NVObject)详细设计与实现 | 第67-98页 |
5.1 系统模块架构说明 | 第67页 |
5.2 智能指针模块设计与实现 | 第67-69页 |
5.2.1 智能指针的设计与实现 | 第68-69页 |
5.2.2 编程模型 | 第69页 |
5.3 软件内存事务模块设计与实现 | 第69-82页 |
5.3.1 全局时钟管理模块 | 第69-70页 |
5.3.2 对象版本信息管理模块 | 第70-71页 |
5.3.3 高级时间戳集合 | 第71-74页 |
5.3.4 时间戳槽 | 第74-76页 |
5.3.5 对象版本信息 | 第76页 |
5.3.6 时间戳验证模块 | 第76-79页 |
5.3.7 对象事务 | 第79-81页 |
5.3.8 集合管理 | 第81-82页 |
5.3.9 事务异常类 | 第82页 |
5.4 事务日志设计与实现 | 第82-86页 |
5.4.1 事务日志中的基础模块 | 第82-83页 |
5.4.2 事务日志执行流程 | 第83-86页 |
5.4.3 事务日志记录格式 | 第86页 |
5.5 系统恢复 | 第86-89页 |
5.6 名字服务模块设计与实现 | 第89-93页 |
5.7 面向对象支撑模块设计与实现 | 第93-95页 |
5.7.1 事务宏 | 第93-94页 |
5.7.2 对象类型管理系统 | 第94页 |
5.7.3 NVM对象管理 | 第94-95页 |
5.8 对象迁移技术设计与实现 | 第95-97页 |
5.8.1 数据迁移的触发 | 第95页 |
5.8.2 迁移对象的选择 | 第95-96页 |
5.8.3 迁移动作的执行 | 第96-97页 |
5.9 本章小结 | 第97-98页 |
第六章 系统测试 | 第98-112页 |
6.1 测试方案设计 | 第98-99页 |
6.1.1 测试说明 | 第98页 |
6.1.2 测试环境 | 第98-99页 |
6.2 用户态内存管理系统(NVMalloc)功能测试 | 第99-102页 |
6.2.1 对象申请测试 | 第99页 |
6.2.2 对象释放测试 | 第99-100页 |
6.2.3 对象持久性测试 | 第100-102页 |
6.2.4 垃圾回收测试 | 第102页 |
6.3 对象存储系统(NVObject)功能测试 | 第102-105页 |
6.3.1 并发事务保障测试 | 第102-103页 |
6.3.2 故障恢复功能测试 | 第103-104页 |
6.3.3 名字服务功能测试 | 第104页 |
6.3.4 访问统计功能测试 | 第104-105页 |
6.3.5 数据迁移测试 | 第105页 |
6.4 性能对比测试 | 第105-111页 |
6.4.1 与tcmalloc进行比较 | 第105-107页 |
6.4.2 与redis进行比较 | 第107-111页 |
6.5 本章小结 | 第111-112页 |
第七章 总结与展望 | 第112-114页 |
致谢 | 第114-115页 |
参考文献 | 第115-119页 |
攻硕期间取得的研究成果 | 第119-120页 |