| 摘要 | 第4-5页 |
| Abstract | 第5-6页 |
| 第1章 绪论 | 第9-16页 |
| 1.1 课题研究的目的与意义 | 第9-11页 |
| 1.2 数据竞争检测和验证国内外研究现状 | 第11-15页 |
| 1.2.1 数据竞争检测和验证国外研究现状 | 第11-13页 |
| 1.2.2 数据竞争检测和验证国内研究现状 | 第13-14页 |
| 1.2.3 数据竞争检测和验证国内外研究现状分析 | 第14-15页 |
| 1.3 课题研究的主要内容及章节安排 | 第15-16页 |
| 第2章 数据竞争理论基础和检测工具 | 第16-26页 |
| 2.1 数据竞争的理论基础 | 第16-20页 |
| 2.1.1 数据竞争基本概念 | 第16-17页 |
| 2.1.2 Lockset算法 | 第17-18页 |
| 2.1.3 Happens-before关系 | 第18-20页 |
| 2.2 动态二进制插桩和检测工具 | 第20-24页 |
| 2.2.1 动态二进制插桩 | 第20-21页 |
| 2.2.2 Intel Pin平台 | 第21-24页 |
| 2.3 静态数据竞争分析和检测工具 | 第24-25页 |
| 2.3.1 静态数据竞争检测工具RELAY | 第24页 |
| 2.3.2 静态分析工具Cetus | 第24-25页 |
| 2.4 本章小结 | 第25-26页 |
| 第3章 动静结合的数据竞争检测和验证方法研究 | 第26-53页 |
| 3.1 动静结合的数据竞争检测和验证方法基本流程 | 第26-27页 |
| 3.2 静态数据竞争检测和静态ad-hoc类型同步分析 | 第27-34页 |
| 3.2.1 静态数据竞争检测 | 第27-28页 |
| 3.2.2 静态ad-hoc类型同步分析 | 第28-34页 |
| 3.3 动态数据竞争检测和验证 | 第34-45页 |
| 3.3.1 动态数据竞争检测 | 第34-38页 |
| 3.3.2 动态数据竞争验证 | 第38-41页 |
| 3.3.3 动态数据竞争验证检测 | 第41-43页 |
| 3.3.4 动态数据竞争验证检测并行化 | 第43-45页 |
| 3.4 剔除良性和错误的数据竞争 | 第45-47页 |
| 3.4.1 识别配对写 | 第45-46页 |
| 3.4.2 识别自旋读 | 第46页 |
| 3.4.3 确认ad-hoc类型同步并剔除良性和错误的数据竞争 | 第46-47页 |
| 3.5 识别潜在的有害数据竞争 | 第47-52页 |
| 3.5.1 识别潜在的空指针解引用内存错误 | 第47-49页 |
| 3.5.2 识别潜在的未初始化读内存错误 | 第49-50页 |
| 3.5.3 识别潜在的悬挂指针访问内存错误 | 第50-51页 |
| 3.5.4 识别潜在的缓冲区溢出内存错误 | 第51-52页 |
| 3.6 本章小结 | 第52-53页 |
| 第4章 原型系统的设计和算法验证 | 第53-68页 |
| 4.1 实验环境 | 第53页 |
| 4.2 数据竞争检测和验证原型系统的设计 | 第53-56页 |
| 4.2.1 静态数据竞争检测的设计 | 第55页 |
| 4.2.2 静态ad-hoc类型同步分析的设计 | 第55页 |
| 4.2.3 动态数据竞争检测和验证的设计 | 第55-56页 |
| 4.3 数据竞争检测和验证原型系统功能测试 | 第56页 |
| 4.4 数据竞争检测和验证实验结果与分析 | 第56-66页 |
| 4.4.1 Benchmark简介 | 第56-57页 |
| 4.4.2 实验方法和评价指标 | 第57-58页 |
| 4.4.3 动态数据竞争检测实验结果总体分析 | 第58-61页 |
| 4.4.4 动静结合的数据竞争检测和验证实验结果总体分析 | 第61-66页 |
| 4.5 本章小结 | 第66-68页 |
| 结论 | 第68-70页 |
| 参考文献 | 第70-75页 |
| 攻读硕士学位期间发表的论文及其它成果 | 第75-77页 |
| 致谢 | 第77页 |