并发程序的精化验证技术及其关键应用

基本信息
批准号:61379039
项目类别:面上项目
资助金额:75.00
负责人:冯新宇
学科分类:
依托单位:中国科学技术大学苏州高等研究院
批准年份:2013
结题年份:2017
起止时间:2014-01-01 - 2017-12-31
项目状态: 已结题
项目参与者:张扬,梁红瑾,张紫鹏,赵立飞,许峰唯,曹红星,马杰波
关键词:
程序正确性精化程序逻辑并发程序验证
结项摘要

Program refinement has been used as a theoretical foundation for program verification, including algorithm verification, compiler verification and OS kernel verification. However, existing theories and verification techniques all have serious problems to work in a concurrent setting. In particular, they either lack compositionality, or cannot reason about termination and liveness properties of programs. Also, most of the theories are built upon the idealized sequentially consistent memory model with vanilla threads. They cannot support relaxed memory models, or interrupt and event-driven concurrency model. Another problem is the lack of Hoare-style axiomatic proof theory and tools. This makes verification a very challenging job. In this project we would like to develop new theories and verification techniques for concurrent program refinement, and use it as a uniform framework for concurrency verification. Our work is based on existing compositional verification techniques, but we extend them to support liveness verification. We plan to develop new specification and simulation theories for refinement proofs in relaxed memory models and interrupt-driven concurrency. We will also propose new relational program logic as a proof theory, and build corresponding tools to automate the verification process. To demonstrate the applicability of our work, we will apply them in three key applications, including verification of fine-grained concurrent algorithms, verification of software transactional memory (STM) implementations as a special compiler, and verification of interrupt handlers and thread schedulers in OS kernels.

精化验证是一种重要的程序验证技术,它在算法验证、编译器验证和操作系统验证等方向都有着重要的应用。然而,在并发环境下,现有的精化验证理论和技术尚有着很多缺陷,不能有效支持上述的应用需求,具体表现为活性验证需求和验证技术的可组合性无法兼顾、缺少对弱内存模型和带中断的并发等多种并发模型的支持、以及缺少公理化的证明理论和工具等。 针对上述不足,本课题研究并发程序的精化验证理论和技术,在坚持验证技术的模块化和可组合性的基础上,探讨在不同并发模型下的精化关系刻画和证明,加强对程序活性验证的支持,开发霍尔风格的公理化程序逻辑和证明系统,最终形成支持多种并发程序验证的统一的基础验证理论和框架。我们还将探讨该理论和框架在细粒度并发算法验证、软件事务型内存算法(一种并发编译技术)验证以及操作系统内核中的中断和调度机制验证方面的应用,以检验理论和框架的有效性和实用性。

项目摘要

精化验证是一种重要的程序验证技术,它在算法验证、编译器验证和操作系统验证等方向都有着重要的应用。然而,在并发环境下,现有的精化验证理论和技术尚有着很多缺陷,不能有效支持上述的应用需求,具体表现为活性验证需求和验证技术的可组合性无法兼顾、缺少对弱内存模型和带中断的并发等多种并发模型的支持、以及缺少公理化的证明理论和工具等。.. 针对上述不足,本课题研究并发程序的精化验证理论和技术。我们研究不同并发模型下的精化关系的刻画和证明,给出TSO内存模型下的rely/guarantee程序逻辑,以及支持硬件中断和抢占式并发的底层并发模型的精化关系刻画和程序逻辑;深入研究并发对象的终止性和进展性(progress)的刻画和验证,以及与之相等价的上下文精化理论,不仅支持无等待、无锁、无饿死、无死锁等经典进展性定义的验证,还针对带阻塞方法的并发对象,首次提出了“部分无饿死”和“部分无死锁”这两种新的进展性定义,并给出了新的抽象规约,以及支持进展性验证的程序逻辑。.. 我们还成功将相关理论应用于细粒度并发算法验证、并发编译验证、以及操作系统内核中的中断和调度机制验证等。实际应用包括对一系列细粒度并发算法的进展性验证(验证的算法包括Michael-Scott队列算法、DGLM队列算法、Synchronous queue算法、Lock-coupling List、Lazy List、Optimistic List、以及各种锁的实现等),将经典的软件事务型内存算法TL2刻画为程序变换并使用精化验证技术验证其正确性;对并发C程序编译器的模块化验证;以及对嵌入式实时操作系统内核μC/OS-II的关键模块的验证。这些关键领域的应用表明了我们的精化验证理论的有效性和实用性。

项目成果
{{index+1}}

{{i.achievement_title}}

{{i.achievement_title}}

DOI:{{i.doi}}
发表时间:{{i.publish_year}}

暂无此项成果

数据更新时间:2023-05-31

其他相关文献

1

面向云工作流安全的任务调度方法

面向云工作流安全的任务调度方法

DOI:10.7544/issn1000-1239.2018.20170425
发表时间:2018
2

TGF-β1-Smad2/3信号转导通路在百草枯中毒致肺纤维化中的作用

TGF-β1-Smad2/3信号转导通路在百草枯中毒致肺纤维化中的作用

DOI:10.13692/ j.cnki.gywsy z yb.2016.03.002
发表时间:2016
3

生物炭用量对东北黑土理化性质和溶解有机质特性的影响

生物炭用量对东北黑土理化性质和溶解有机质特性的影响

DOI:10.19336/j.cnki.trtb.2020112601
发表时间:2021
4

煤/生物质流态化富氧燃烧的CO_2富集特性

煤/生物质流态化富氧燃烧的CO_2富集特性

DOI:10.11949/j.issn.0438-1157.20180900
发表时间:2018
5

聚酰胺酸盐薄膜的亚胺化历程研究

聚酰胺酸盐薄膜的亚胺化历程研究

DOI:10.3969/j.issn.1005-5770.2022.09.012
发表时间:2022

冯新宇的其他基金

批准号:61073040
批准年份:2010
资助金额:32.00
项目类别:面上项目

相似国自然基金

1

并发程序测试及其关键技术研究

批准号:61472076
批准年份:2014
负责人:戚晓芳
学科分类:F0203
资助金额:82.00
项目类别:面上项目
2

并发程序切片及其关键技术研究

批准号:60873049
批准年份:2008
负责人:戚晓芳
学科分类:F0203
资助金额:28.00
项目类别:面上项目
3

基于上下文精化的并发对象活性的描述及验证

批准号:61502442
批准年份:2015
负责人:梁红瑾
学科分类:F0201
资助金额:19.00
项目类别:青年科学基金项目
4

基于符号执行的并发程序分析与验证研究

批准号:61272140
批准年份:2012
负责人:黄春
学科分类:F0203
资助金额:80.00
项目类别:面上项目