课题基金 / 基金详情

CONSEQUENCER: Sequentialization-based Verification of Concurrent Programs with FIFO channels

CONSEQUENCER: Sequentialization-based Verification of Concurrent Programs with FIFO channels
CONSEQUENCER:具有 FIFO 通道的并发程序的基于序列化的验证
批准号:
EP/M008991/1
负责人:
Gennaro Parlato
金额:
$12.61万
依托单位:
依托单位国家:
英国
项目类别:
Research Grant
财政年份:
2015
资助国家:
英国
项目状态:
已结题
起止时间:
2015 至 --

项目摘要

项目成果

相关文献

中文摘要
翻译
点击翻译按钮获取中文摘要
英文摘要
The steady exponential increase in processor performance has reached the inevitable turning point, at which it is no longer feasible toincrease the clock speeds of individual processors. To achievehigher performance, processors now contain several cores that work in parallel.Consequently, concurrency has become an important aspect across manyareas within computer science, such as algorithms, data structures, programminglanguages, software engineering, testing, and verification.Concurrent programs consist of several computations or threads that areactive at the same time and communicate through some control mechanism, such aslocks and shared variables, or message passing. Concurrent programming is difficult:programmers do not only have to guarantee the correctnessof the sequential execution of each individual thread, they must also considernondeterministic interferences from other threads. Due to these complexinteractions, considerable resources are spent to repair buggy concurrentsoftware.Testing remains the most used (and often the only known) paradigm in industry to find errors,even though the inherently nondeterministic nature of the concurrentschedules causes errors that manifest rarely and are difficult to reproduce and repair.Testing is not effective in detecting such concurrency errors, as allpossible executions of the programs have to be explored explicitly.Consequently, testing needs to be complemented by automated verification tools thatenable detection of errors without explicitly (i.e. symbolically) exploring executions. On the other hand, the state of the art for concurrent program verification lags behind that for sequential programs.Here, researchers have successfully explored a wide range of techniques andtools to analyse real-world sequential software.A recently proposed approach for symbolic verification of concurrent programs called sequentialization, consists in translating the concurrent program into an equivalent sequential program so thatverification techniques or tools that were originally designed forsequential programs can be reused without any changes.This technique has been successfully used to discover bugs in existing softwareand has been implemented in several tools (e.g., Corral by Microsoft Research).However, existing sequentialization schemas do not support weak memory models, or distributed programs that use message passing. In this proposal we address these weaknesses and plan the development of automated verification tools that enable detection of errors in concurrent programs in a systematic and symbolic way. More specifically, we will develop the theory, models and algorithms that underpin sequentialization of concurrent programs that use FIFO channels. This will enable us to capture within a single framework (1) concurrent programs that communicate through shared memory, for the variety of (weak) memory models that are implemented in today's computer architectures, and (2) distributed programs which use a message-passing communication style (i.e., the two most commonly used programming models for concurrency).A key deliverable of this project will be a set of automatic code-to-code translators, called ConSequencer, for C programs that use Pthread (for shared variables) and MPI (for distributed programs). This will serve as a concurrency plugin for any program verification tool designed for sequential programs. We will evaluate our solutions on publicly available benchmarks using a range of robust sequential verification tools for the C language.
期刊论文(10)
专著(0)
科研奖励(0)
会议论文
Concurrent Program Verification with Lazy Sequentialization and Interval Analysis
使用惰性序列化和区间分析进行并发程序验证
DOI: --
发表时间: 2017
期刊:
影响因子: --
作者: [Nguyen T L]
通讯作者: Nguyen T L
DOI: 10.1145/3478536
发表时间: 2021-12
期刊: ACM Transactions on Programming Languages and Systems (TOPLAS)
影响因子: --
作者: [Omar Inverso;Ermenegildo Tomasco;B. Fischer;Salvatore La Torre;G. Parlato]
通讯作者: Omar Inverso;Ermenegildo Tomasco;B. Fischer;Salvatore La Torre;G. Parlato
VeriSmart 2.0: Swarm-Based Bug-Finding for Multi-threaded Programs with Lazy-CSeq
VeriSmart 2.0:使用 Lazy-CSeq 进行基于群的多线程程序错误查找
DOI: 10.1109/ase.2019.00124
发表时间: 2019
期刊:
影响因子: --
作者: [Fischer B]
通讯作者: Fischer B
Tools and Algorithms for the Construction and Analysis of Systems - 21st International Conference, TACAS 2015, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2015, London, UK, April 11-18, 2015, Proceedings
系统构建和分析的工具和算法 - 第 21 届国际会议,TACAS 2015,作为欧洲软件理论与实践联合会议的一部分举行,ETAPS 2015,英国伦敦,2015 年 4 月 11-18 日,会议记录
DOI: 10.1007/978-3-662-46681-0_45
发表时间: 2015
期刊:
影响因子: --
作者: [Nguyen T]
通讯作者: Nguyen T
7