摘要 | 第5-6页 |
ABSTRACT | 第6页 |
第1章 绪论 | 第9-15页 |
1.1 研究动机 | 第9-10页 |
1.2 国内外相关工作 | 第10-11页 |
1.3 本文贡献 | 第11-13页 |
1.4 本文组织结构 | 第13-15页 |
第2章 相关背景知识介绍 | 第15-21页 |
2.1 SPARCv8指令集 | 第15-16页 |
2.2 霍尔逻辑 | 第16-18页 |
2.3 SCAP | 第18-19页 |
2.4 精化验证 | 第19页 |
2.5 Coq辅助定理证明工具 | 第19-21页 |
第3章 SPARCv8指令集的形式化建模 | 第21-31页 |
3.1 语法和程序状态 | 第21-25页 |
3.2 操作语义 | 第25-29页 |
3.3 本章小结 | 第29-31页 |
第4章 SPARCv8汇编程序验证逻辑 | 第31-53页 |
4.1 断言语言 | 第31-34页 |
4.2 推理规则 | 第34-43页 |
4.2.1 代码堆推理规则 | 第36页 |
4.2.2 指令序列的推理规则 | 第36-39页 |
4.2.3 指令推理规则 | 第39-43页 |
4.3 验证逻辑的可靠性 | 第43-47页 |
4.4 验证逻辑在Coq中的实现 | 第47-51页 |
4.5 本章小结 | 第51-53页 |
第5章 上下文切换程序主要功能模块的验证 | 第53-63页 |
5.1 任务上下文切换程序结构 | 第53-54页 |
5.2 程序规范 | 第54-58页 |
5.3 Coq验证工作 | 第58-61页 |
5.4 本章小结 | 第61-63页 |
第6章 SPARCv8程序的精化验证 | 第63-81页 |
6.1 验证方法概述 | 第63-65页 |
6.2 高层带抽象汇编原语的C语言 | 第65-68页 |
6.3 底层SPARCv8程序 | 第68-70页 |
6.4 最终目标 | 第70-73页 |
6.5 汇编实现和抽象汇编原语之间的模拟关系 | 第73-79页 |
6.6 本章小结 | 第79-81页 |
第7章 本文总结和未来工作 | 第81-83页 |
参考文献 | 第83-87页 |
附录A 线程局部操作语义 | 第87-91页 |
附录B 简单指令转移规则 | 第91-93页 |
附录C SPARCv8精化验证内容补充 | 第93-101页 |
C.1 程序执行的安全性与封闭型 | 第93-94页 |
C.2 SPARCv8中的函数调用惯例 | 第94-96页 |
C.3 客户端程序模拟关系 | 第96-101页 |
附录D switch原语实现和原语之间满足模拟关系 | 第101-109页 |
致谢 | 第109-111页 |
在读期间发表的学术论文与取得的研究成果 | 第111页 |