Elsevier

Science of Computer Programming

Volume 80, Part A, 1 February 2014, Pages 169-187
Science of Computer Programming

A case study on the lightweight verification of a multi-threaded task server

https://doi.org/10.1016/j.scico.2013.01.004Get rights and content
Under an Elsevier user license
open archive

Abstract

We present a case study on the verification of the design of a commercial multi-threaded task server (MTTS), developed by the Novabase company, used for massively parallelizing computational tasks. In a first stage, we employed the Plural tool, which is designed to perform lightweight verification of Java programs using a data-flow analysis (DFA) framework, to specify and verify the MTTS. We wrote the Plural specification for the MTTS based on the code developed by Novabase, its informal documentation, and our discussions with Novabase engineers, who validated our understanding of the MTTS application. The Plural specification language is based on typestates and access permissions. In a second stage, we developed the Pulse tool, which enhances the analysis performed by Plural, and used the tool on the MTTS specifications. Pulse translates Plural specifications into an abstract state-machine model that captures the semantics of all the possible concurrent programs implementing the given specifications, and uses the evmdd-smc symbolic model checker to verify the machine model. The experimental results on the MTTS specification show that the exhaustive model-checking approach scales reasonably well and is efficient at finding errors in specifications that were not previously detected with the data-flow analysis (DFA) capabilities of Plural.

Highlights

► We present a case study on the verification of a multi-threaded task server (MTTS). ► We wrote formal specifications for the MTTS. ► We implemented the Pulse tool for analyzing the MTTS. ► We used Pulse on the Plural specifications of the MTTS.

Keywords

Concurrency
Parallelism
Formal methods
Specification
Verification
Model checking
Program analysis

Cited by (0)

This work has been supported by the Portuguese Research Agency FCT through the CMU-Portugal program, R&D Project Aeminium, CMU-PT/SE/0038/2008.