The University of Southampton
University of Southampton Institutional Repository

A pragmatic verification approach for concurrent programs

A pragmatic verification approach for concurrent programs
A pragmatic verification approach for concurrent programs
Developing correct concurrent software is a difficult task, due to the inherently non-deterministic nature of thread interactions. Traditional testing techniques typically perform an explicit exploration of the possible program executions, and are thus inadequate for concurrent software. Symbolic verification techniques for concurrent programs are therefore desirable.

Sequentialization has become one of the most promising symbolic approach for the verification of concurrent programs in recent years. However, current efficient implementations still struggle with concurrent programs that contain rare bugs, and their purposes is restricted to bug-finding. In this thesis, we advance sequentialization to provide pragmatic and scalable verification approaches for concurrent programs, aiming at finding bugs and proving correctness.

Concerning finding rare bugs in concurrent programs, we present our work on optimising Lazy-CSeq sequentialization using abstract interpretation. We empirically demonstrate that this procedure, which is implemented in the tool called Lazy-CSeq+ABS, can lead to significant performance gain for very hard verification problem.

Furthermore, we propose a “swarm” verification approach that can enable existing tools to find rare concurrency bugs which were previously out of reach. We implement the approach in VeriSmart, as a extension of Lazy-CSeq, and empirically demonstrate that VeriSmart can spot rare bugs considerably faster than Lazy-CSeq tool can.

With regard to proving correctness, we develop a novel lazy sequentialization for unbounded concurrent programs and implement the corresponding schema in a tool named UL-CSeq based on the CSeq framework. Empirical experiments show that our new schema is efficient in both proving correctness and finding bugs on concurrency benchmarks in comparison with state-of-the-art approaches.
Concurrency, Verification, Program Analysis, tool
University of Southampton
Nguyen Lam, Truc
0a373da7-0868-466d-a3b8-060868037acc
Nguyen Lam, Truc
0a373da7-0868-466d-a3b8-060868037acc
Parlato, Gennaro
c28428a0-d3f3-4551-a4b5-b79e410f4923

Nguyen Lam, Truc (2017) A pragmatic verification approach for concurrent programs. University of Southampton, Doctoral Thesis, 101pp.

Record type: Thesis (Doctoral)

Abstract

Developing correct concurrent software is a difficult task, due to the inherently non-deterministic nature of thread interactions. Traditional testing techniques typically perform an explicit exploration of the possible program executions, and are thus inadequate for concurrent software. Symbolic verification techniques for concurrent programs are therefore desirable.

Sequentialization has become one of the most promising symbolic approach for the verification of concurrent programs in recent years. However, current efficient implementations still struggle with concurrent programs that contain rare bugs, and their purposes is restricted to bug-finding. In this thesis, we advance sequentialization to provide pragmatic and scalable verification approaches for concurrent programs, aiming at finding bugs and proving correctness.

Concerning finding rare bugs in concurrent programs, we present our work on optimising Lazy-CSeq sequentialization using abstract interpretation. We empirically demonstrate that this procedure, which is implemented in the tool called Lazy-CSeq+ABS, can lead to significant performance gain for very hard verification problem.

Furthermore, we propose a “swarm” verification approach that can enable existing tools to find rare concurrency bugs which were previously out of reach. We implement the approach in VeriSmart, as a extension of Lazy-CSeq, and empirically demonstrate that VeriSmart can spot rare bugs considerably faster than Lazy-CSeq tool can.

With regard to proving correctness, we develop a novel lazy sequentialization for unbounded concurrent programs and implement the corresponding schema in a tool named UL-CSeq based on the CSeq framework. Empirical experiments show that our new schema is efficient in both proving correctness and finding bugs on concurrency benchmarks in comparison with state-of-the-art approaches.

Text
thesis - Version of Record
Available under License University of Southampton Thesis Licence.
Download (917kB)

More information

Published date: May 2017
Additional Information: Related publications: Lazy-CSeq: A Context-Bounded Model Checking Tool for Multi-Threaded C-Programs Lazy Sequentialization for TSO and PSO via Shared Memory Abstractions Separating computation from communication: a design approach for concurrent program verification Unbounded Lazy-CSeq: a lazy sequentialization tool for C programs with unbounded context switches (competition contribution) Embedding weak memory models within eager sequentialization MU-CSeq 0.4: individual memory location unwindings: (competition contribution) Lazy-CSeq 1.0:(Competition Contribution) Lazy sequentialization for the safety verification of unbounded concurrent programs Unbounded Lazy-CSeq: A Lazy Sequentialization Tool for C with unboundedly many Context Switches: (Competition Contribution)
Keywords: Concurrency, Verification, Program Analysis, tool

Identifiers

Local EPrints ID: 413593
URI: http://eprints.soton.ac.uk/id/eprint/413593
PURE UUID: f4e49f1e-a8cc-4b59-9cce-5919ce83268f

Catalogue record

Date deposited: 29 Aug 2017 16:30
Last modified: 15 Mar 2024 14:30

Export record

Contributors

Author: Truc Nguyen Lam
Thesis advisor: Gennaro Parlato

Download statistics

Downloads from ePrints over the past year. Other digital versions may also be available to download e.g. from the publisher's website.

View more statistics

Atom RSS 1.0 RSS 2.0

Contact ePrints Soton: eprints@soton.ac.uk

ePrints Soton supports OAI 2.0 with a base URL of http://eprints.soton.ac.uk/cgi/oai2

This repository has been built using EPrints software, developed at the University of Southampton, but available to everyone to use.

We use cookies to ensure that we give you the best experience on our website. If you continue without changing your settings, we will assume that you are happy to receive cookies on the University of Southampton website.

×