基于共享和形状标注的并行语言程序分析与变换
摘要 | 第1-5页 |
ABSTRACT | 第5-10页 |
第1章 绪论 | 第10-16页 |
·问题描述 | 第10-11页 |
·相关工作与研究现状 | 第11-14页 |
·常用的并发控制机制 | 第11-12页 |
·指针分析与形状分析 | 第12-13页 |
·锁分配算法 | 第13-14页 |
·研究内容 | 第14-15页 |
·论文组织 | 第15-16页 |
第2章 SPC-II语言 | 第16-34页 |
·具体语法 | 第16-22页 |
·共享性 | 第16页 |
·并行语句 | 第16-17页 |
·共享变量的维持语义 | 第17-19页 |
·形状声明 | 第19-20页 |
·变量 | 第20-21页 |
·程序实例 | 第21-22页 |
·抽象语法 | 第22-23页 |
·静态语义 | 第23-29页 |
·良型类型 | 第24页 |
·类型兼容 | 第24-25页 |
·良型类型上下文 | 第25页 |
·副作用 | 第25-26页 |
·共享效果 | 第26页 |
·良型表达式 | 第26-28页 |
·良型语句 | 第28-29页 |
·良型程序 | 第29页 |
·动态语义 | 第29-32页 |
·抽象机 | 第29-30页 |
·操作语义 | 第30-32页 |
·总结 | 第32-34页 |
第3章 一种链状数据结构细粒度加锁方法 | 第34-46页 |
·形状图 | 第34-36页 |
·定义 | 第34-35页 |
·内存抽象 | 第35-36页 |
·维持语义 | 第36页 |
·维持分析 | 第36-42页 |
·原子命令上的维持分析 | 第37-40页 |
·维持数据流分析 | 第40-41页 |
·实例分析 | 第41-42页 |
·访问控制代码生成 | 第42-43页 |
·细粒度锁语句插桩 | 第42页 |
·避免死锁 | 第42-43页 |
·实验结果和分析 | 第43-44页 |
·本章小结 | 第44-46页 |
第4章 SPC翻译器的实现 | 第46-66页 |
·Suif 编译框架 | 第46-51页 |
·中间表示 | 第46-48页 |
·控制流图 | 第48-51页 |
·SPC-II 设计与实现框架 | 第51-53页 |
·SPC 源程序 | 第52页 |
·程序分析 | 第52页 |
·目标代码 | 第52-53页 |
·形状图设计 | 第53-56页 |
·形状类型及其关系 | 第53页 |
·节点类 | 第53页 |
·边类和边集类 | 第53-54页 |
·形状图类 | 第54页 |
·形状图图形化输出 | 第54-56页 |
·维持分析数据流分析设计 | 第56-59页 |
·HoldingSetPiece | 第56页 |
·HoldingSet | 第56-57页 |
·NodeDS | 第57-58页 |
·ThreadDS | 第58页 |
·HoldingAnalysis | 第58-59页 |
·细粒度锁代码生成 | 第59-61页 |
·锁分配策略 | 第59-60页 |
·结构体类型 | 第60页 |
·共享指针类型 | 第60-61页 |
·事务内存代码生成 | 第61-62页 |
·宏处理 | 第61页 |
·变量在存储语句中的变换 | 第61页 |
·变量在取值表达式中的变换 | 第61-62页 |
·宏定义和函数调用 | 第62页 |
·检查器 | 第62-63页 |
·内存泄露 | 第62页 |
·指针安全问题 | 第62-63页 |
·死锁避免 | 第63-64页 |
·本章小结 | 第64-66页 |
第5章 结束语 | 第66-68页 |
参考文献 | 第68-70页 |
致谢 | 第70-71页 |
在读期间发表的学术论文与取得的研究成果 | 第71页 |