摘要 | 第4-6页 |
ABSTRACT | 第6-8页 |
第1章 绪论 | 第17-47页 |
1.1 课题背景及研究目的与意义 | 第17-26页 |
1.1.1 课题研究背景 | 第17-18页 |
1.1.2 并发程序的特点 | 第18-19页 |
1.1.3 并发缺陷的特点 | 第19页 |
1.1.4 并发缺陷的分类 | 第19-23页 |
1.1.5 4 类并发缺陷的相互关系 | 第23页 |
1.1.6 并发缺陷分析的关键技术挑战 | 第23-25页 |
1.1.7 研究目的与意义 | 第25-26页 |
1.2 国内外研究现状及分析 | 第26-44页 |
1.2.1 并发缺陷暴露 | 第26-27页 |
1.2.2 并发缺陷检测 | 第27-37页 |
1.2.3 并发缺陷规避 | 第37-42页 |
1.2.4 通用并发缺陷检测与规避 | 第42页 |
1.2.5 现有研究存在的问题分析 | 第42-44页 |
1.3 本文的研究内容和组织结构 | 第44-47页 |
1.3.1 研究内容 | 第44页 |
1.3.2 组织结构 | 第44-47页 |
第2章 基于锁分配图的混合死锁动态检测方法 | 第47-66页 |
2.1 引言 | 第47-49页 |
2.1.1 现有研究存在的问题 | 第47-48页 |
2.1.2 本文的解决思路 | 第48-49页 |
2.2 混合锁分配图与5类死锁定义 | 第49-50页 |
2.3 加锁解锁劫持算法 | 第50-55页 |
2.3.1 互斥锁加锁解锁劫持算法 | 第51-54页 |
2.3.2 读写锁加锁解锁劫持算法 | 第54-55页 |
2.4 混合锁分配图构建和环检测算法 | 第55-57页 |
2.5 实验与分析 | 第57-65页 |
2.5.1 基准死锁程序集 | 第57-59页 |
2.5.2 实验环境 | 第59页 |
2.5.3 检测能力评测与对比 | 第59-62页 |
2.5.4 性能影响评测与分析 | 第62-64页 |
2.5.5 可扩展性评测与分析 | 第64-65页 |
2.6 本章小结 | 第65-66页 |
第3章 动静结合的数据竞争检测方法 | 第66-112页 |
3.1 引言 | 第66-68页 |
3.1.1 现有研究存在的问题 | 第66-68页 |
3.1.2 本文的解决思路 | 第68页 |
3.2 静态数据竞争检测 | 第68-71页 |
3.2.1 静态竞争检测工具RELAY | 第68-69页 |
3.2.2 静态竞争访问对生成 | 第69-71页 |
3.3 静态自旋读循环定位 | 第71-78页 |
3.3.1 静态分析工具Cetus | 第71页 |
3.3.2 自定义同步原语 | 第71-74页 |
3.3.3 自旋读循环定位 | 第74-78页 |
3.4 动态数据竞争验证与检测 | 第78-93页 |
3.4.1 动态插桩工具Pin和Maple | 第79页 |
3.4.2 动态数据竞争检测 | 第79-88页 |
3.4.3 动态数据竞争验证 | 第88-92页 |
3.4.4 动态数据竞争检测式验证 | 第92-93页 |
3.5 自定义同步原语动态确认与误检竞争剔除 | 第93-98页 |
3.5.1 自定义同步原语动态确认 | 第94-97页 |
3.5.2 误检竞争剔除 | 第97-98页 |
3.6 实验与分析 | 第98-110页 |
3.6.1 基准竞争程序集 | 第99-100页 |
3.6.2 实验环境与竞争检测工具 | 第100-101页 |
3.6.3 检测能力评测与对比 | 第101-108页 |
3.6.4 性能影响评测与分析 | 第108-109页 |
3.6.5 可扩展性评测与分析 | 第109-110页 |
3.7 本章小结 | 第110-112页 |
第4章 基于未来锁集的动静结合死锁规避方法 | 第112-138页 |
4.1 引言 | 第112-113页 |
4.1.1 现有研究存在的问题 | 第112页 |
4.1.2 本文的解决思路 | 第112-113页 |
4.2 规避对象、锁效应与未来锁集 | 第113-117页 |
4.2.1 规避对象 | 第114页 |
4.2.2 锁效应 | 第114-116页 |
4.2.3 未来锁集 | 第116-117页 |
4.3 规避逻辑 | 第117-120页 |
4.4 死锁规避方法的具体实现 | 第120-128页 |
4.4.1 过程内控制流图建立 | 第120-121页 |
4.4.2 过程内控制流图路径分析 | 第121-124页 |
4.4.3 锁效应计算与插桩 | 第124-127页 |
4.4.4 加锁解锁操作劫持 | 第127页 |
4.4.5 规避逻辑的原子执行 | 第127-128页 |
4.5 实验与分析 | 第128-136页 |
4.5.1 基准死锁程序集和基准非死锁程序集 | 第128-129页 |
4.5.2 实验环境与死锁规避工具 | 第129页 |
4.5.3 规避能力评测与对比 | 第129-132页 |
4.5.4 性能影响评测与分析 | 第132-135页 |
4.5.5 可扩展性评测与分析 | 第135-136页 |
4.6 本章小结 | 第136-138页 |
第5章 基于软件事务内存的并发缺陷规避方法 | 第138-191页 |
5.1 引言 | 第138-146页 |
5.1.1 现有研究存在的问题 | 第138-140页 |
5.1.2 本文的解决思路 | 第140-146页 |
5.2 可回滚内存 | 第146-149页 |
5.2.1 可回滚全局内存 | 第146-147页 |
5.2.2 可回滚堆内存 | 第147-149页 |
5.3 可回滚执行 | 第149-151页 |
5.4 可回滚I/O | 第151-158页 |
5.4.1 可回滚系统I/O | 第152-158页 |
5.4.2 可回滚C I/O | 第158页 |
5.5 条件变量处理 | 第158-160页 |
5.6 事务执行 | 第160-161页 |
5.7 实验与分析 | 第161-190页 |
5.7.1 实验环境 | 第161页 |
5.7.2 适用性评估 | 第161-164页 |
5.7.3 在内存密集程序集上的性能评测与对比 | 第164-171页 |
5.7.4 在I/O密集程序集上的性能评测与对比 | 第171-174页 |
5.7.5 在条件变量密集程序集上的性能评测与对比 | 第174-177页 |
5.7.6 在真实程序集上的性能评测与对比 | 第177-178页 |
5.7.7 在并发缺陷集上的规避能力评测与对比 | 第178-190页 |
5.8 本章小结 | 第190-191页 |
结论 | 第191-194页 |
参考文献 | 第194-211页 |
攻读博士学位期间发表的论文及其他成果 | 第211-214页 |
致谢 | 第214-215页 |
个人简历 | 第215页 |