摘要 | 第5-7页 |
ABSTRACT | 第7-8页 |
主要符号对照表 | 第16-17页 |
第一章 绪论 | 第17-25页 |
1.1 操作系统验证工作的困难和挑战 | 第18-19页 |
1.2 研究现状 | 第19-23页 |
1.2.1 操作系统验证现状 | 第19-21页 |
1.2.2 并发精化验证理论的现状 | 第21-23页 |
1.3 本文贡献 | 第23-24页 |
1.4 本文组织结构 | 第24-25页 |
第二章 相关技术背景介绍 | 第25-33页 |
2.1 抢占和硬件中断 | 第25-26页 |
2.2 基于占有权转移的中断验证 | 第26-28页 |
2.3 并发程序的精化验证 | 第28-29页 |
2.4 证明工具Coq简介 | 第29-30页 |
2.4.1 在Coq中定义C表达式 | 第29页 |
2.4.2 自动证明策略编程语言Ltac | 第29-30页 |
2.5 μC/OS-Ⅱ简介 | 第30-33页 |
第三章 操作系统内核验证框架概述 | 第33-39页 |
3.1 操作系统内核的正确性 | 第33-34页 |
3.2 操作系统内核建模 | 第34-35页 |
3.2.1 底层机器模型 | 第34页 |
3.2.2 高层机器模型 | 第34-35页 |
3.3 并发精化程序逻辑CSL-R | 第35-36页 |
3.4 自动证明策略 | 第36-37页 |
3.5 本章小结 | 第37-39页 |
第四章 操作系统建模及操作系统正确性定义 | 第39-61页 |
4.1 底层机器模型 | 第39-51页 |
4.1.1 应用语言 | 第39-45页 |
4.1.2 内核语言 | 第45-46页 |
4.1.3 底层操作语义 | 第46-50页 |
4.1.4 在Coq中编码 | 第50-51页 |
4.2 高层机器模型 | 第51-57页 |
4.2.1 高层规范语言 | 第52-53页 |
4.2.2 高层程序状态 | 第53-55页 |
4.2.3 操作语义 | 第55-57页 |
4.3 操作系统正确性定义 | 第57-58页 |
4.4 本章小结 | 第58-61页 |
第五章 精化程序逻辑 | 第61-91页 |
5.1 关系型断言语言 | 第61-65页 |
5.2 多级中断的处理 | 第65-66页 |
5.3 推理规则 | 第66-79页 |
5.3.1 顶层规则 | 第67-68页 |
5.3.2 内部函数的验证 | 第68-70页 |
5.3.3 中断处理程序的验证 | 第70-71页 |
5.3.4 系统API的验证 | 第71-72页 |
5.3.5 程序语句推理规则 | 第72-76页 |
5.3.6 一个例子 | 第76-79页 |
5.4 可靠性证明 | 第79-89页 |
5.4.1 逻辑判断的语义 | 第80-84页 |
5.4.2 推理系统可靠性的证明 | 第84-89页 |
5.5 本章小结 | 第89-91页 |
第六章 局部不变式和分数权限(fractional permission) | 第91-105页 |
6.1 解决问题的思路 | 第96-98页 |
6.2 对验证框架的扩展和调整 | 第98-102页 |
6.3 扩展后OSTaskDel的验证过程 | 第102-104页 |
6.4 本章小结 | 第104-105页 |
第七章 自动证明策略 | 第105-111页 |
7.1 关系型断言的自动推导 | 第107-109页 |
7.2 并发精化逻辑推理规则的验证条件自动生成 | 第109-110页 |
7.3 数学性质的自动证明策略 | 第110页 |
7.4 本章小结 | 第110-111页 |
第八章 验证μC/OS-Ⅱ | 第111-125页 |
8.1 对uC/OS-Ⅱ的抽象 | 第112-114页 |
8.2 资源不变式定义 | 第114-116页 |
8.3 对源码的修改 | 第116-117页 |
8.4 PIF性质的证明 | 第117-125页 |
8.4.1 PIF的定义 | 第119-120页 |
8.4.2 μC/OS-Ⅱ嵌套使用互斥信号量的bug | 第120-122页 |
8.4.3 互斥信号量满足UPIF的证明 | 第122-125页 |
第九章 总结 | 第125-127页 |
参考文献 | 第127-129页 |
附录A C语言子集操作语义 | 第129-135页 |
致谢 | 第135-137页 |
在读期间发表的学术论文与取得的研究成果 | 第137页 |