基于Java字节码的多线程数据竞争检测方法研究及工具实现
摘要 | 第4-5页 |
ABSTRACT | 第5页 |
第1章 绪论 | 第8-14页 |
1.1 研究背景 | 第8页 |
1.2 研究目的及意义 | 第8-9页 |
1.3 国内外研究现状 | 第9-12页 |
1.3.1 国外研究现状 | 第9-11页 |
1.3.2 国内研究现状 | 第11-12页 |
1.4 本文主要内容及组织结构 | 第12-14页 |
第2章 数据竞争及检测方法 | 第14-25页 |
2.1 数据竞争问题 | 第14-17页 |
2.1.1 数据竞争及产生原因 | 第14-15页 |
2.1.2 多线程程序下的数据竞争 | 第15-17页 |
2.2 数据竞争检测方法 | 第17-21页 |
2.2.1 静态检测方法 | 第17-18页 |
2.2.2 动态检测方法 | 第18-21页 |
2.3 多线程程序分析技术 | 第21-24页 |
2.3.1 字节码指令分析技术 | 第21-22页 |
2.3.2 程序分析技术 | 第22-24页 |
2.4 本章小结 | 第24-25页 |
第3章 基于JAVA字节码的数据竞争检测方法 | 第25-41页 |
3.1 检测方法流程 | 第25-26页 |
3.2 字节码解析 | 第26-28页 |
3.3 程序流程建模 | 第28-34页 |
3.3.1 控制流程图的生成 | 第28-31页 |
3.3.2 函数调用关系图构建 | 第31-34页 |
3.4 可达性计算 | 第34-36页 |
3.4.1 访问内存操作分析 | 第34-35页 |
3.4.2 线程调用函数过程分析 | 第35-36页 |
3.5 别名分析 | 第36-38页 |
3.6 锁集合计算 | 第38-40页 |
3.7 本章小结 | 第40-41页 |
第4章 数据竞争检测工具实现及实验 | 第41-58页 |
4.1 系统流程设计 | 第41-42页 |
4.2 系统功能设计 | 第42-44页 |
4.3 基于Datalog的算法设计 | 第44-48页 |
4.3.1 可达性计算算法设计 | 第44-45页 |
4.3.2 别名分析算法设计 | 第45-47页 |
4.3.3 锁集合计算算法设计 | 第47-48页 |
4.4 系统模块设计与实现 | 第48-54页 |
4.4.1 字节码解析模块 | 第48-50页 |
4.4.2 程序流程建模模块 | 第50-52页 |
4.4.3 其他模块设计 | 第52-54页 |
4.5 数据竞争检测实验 | 第54-57页 |
4.5.1 实验内容 | 第54-55页 |
4.5.2 实验结果分析 | 第55-57页 |
4.6 本章小结 | 第57-58页 |
结论 | 第58-59页 |
参考文献 | 第59-63页 |
攻读硕士学位期间发表的论文及其它成果 | 第63-65页 |
致谢 | 第65页 |