| 图目录 | 第1-8页 |
| 表目录 | 第8-9页 |
| 摘要 | 第9-10页 |
| Abstract | 第10-11页 |
| 第一章 绪论 | 第11-17页 |
| §1.1 课题研究的背景 | 第11-12页 |
| §1.2 课题研究的意义 | 第12页 |
| §1.3 程序的正确性保障的研究现状 | 第12-15页 |
| ·调试 | 第12-13页 |
| ·动态分析 | 第13页 |
| ·静态分析 | 第13-14页 |
| ·三种方法的比较 | 第14-15页 |
| §1.4 课题研究的内容和成果 | 第15-16页 |
| ·研究内容 | 第15页 |
| ·研究成果 | 第15-16页 |
| §1.5 论文的结构 | 第16-17页 |
| 第二章 OpenMP程序的隐患分析 | 第17-20页 |
| §2.1 未指定行为 | 第17-18页 |
| §2.2 与栅栏同步相关的死锁 | 第18-20页 |
| 第三章 OpenMP程序的静态分析的关键技术 | 第20-26页 |
| §3.1 OpenMP程序的表示 | 第20-22页 |
| ·扩展的控制流图 | 第20-21页 |
| ·调用图 | 第21-22页 |
| §3.2 不确定的程序行为的分析 | 第22-24页 |
| ·“区域分层、按层分析”的思想 | 第22-23页 |
| ·数据流分析 | 第23-24页 |
| §3.3 对程序隐患的解释 | 第24-26页 |
| ·程序隐患的来龙去脉的说明 | 第24页 |
| ·程序隐患的严重程度的量化 | 第24-26页 |
| 第四章 OpenMP程序中的未指定行为的静态检测 | 第26-29页 |
| §4.1 结构化并行区中的未指定行为的检测 | 第26-28页 |
| ·并行区中需要检查的基本块的确定 | 第27页 |
| ·限定的范围中未指定行为的检测 | 第27-28页 |
| §4.2 非结构化并行区中的未指定行为的检测 | 第28-29页 |
| 第五章 OpenMP程序中的与栅栏同步相关的死锁的静态检测 | 第29-32页 |
| §5.1 第一类与栅栏同步相关的死锁的检测 | 第29-31页 |
| ·四种区域中的第一类死锁的检测 | 第29-30页 |
| ·由锁变量确定的互斥区中的第一类死锁的检测 | 第30-31页 |
| §5.2 第二类与栅栏同步相关的死锁的检测 | 第31-32页 |
| 第六章 C-Checker的实现及评测 | 第32-63页 |
| §6.1 CCRG OpenMP并行编译器 | 第32-33页 |
| §6.2 C-Checker的数据结构 | 第33-38页 |
| ·与基本块相关的数据结构 | 第33-36页 |
| ·与过程相关的数据结构 | 第36页 |
| ·与搜索相关的数据结构 | 第36-37页 |
| ·C-Checker用到的数据结构的关联 | 第37-38页 |
| §6.3 C-Checker的主要算法描述 | 第38-57页 |
| ·结构化并行区中的未指定行为的检测算法 | 第39-45页 |
| ·非结构化并行区中的未指定行为的检测算法 | 第45-48页 |
| ·并行区中的死锁的检测算法 | 第48-56页 |
| ·C-Checker的程序结构 | 第56-57页 |
| §6.4 实验 | 第57-63页 |
| ·检测定制的OpenMP程序中的未指定行为 | 第57-58页 |
| ·检测定制的OpenMP程序中的与栅栏同步相关的死锁 | 第58-60页 |
| ·用SPEComp2001评测C-Checker | 第60-63页 |
| 第七章 结束语 | 第63-64页 |
| 致谢 | 第64-65页 |
| 攻读硕士学位期间发表的论文 | 第65-66页 |
| 参考文献 | 第66-67页 |