Automated Verification of CountDownLatch

08/26/2019
by   Wei-Ngan Chin, et al.
0

The CountDownLatch (CDL) is a versatile concurrency mechanism that was first introduced in Java 5, and is also being adopted into C++ and C#. Its usage allows one or more threads to exchange resources and synchronize by waiting for some tasks to be completed before others can proceed. In this paper, we propose a new framework for verifying the correctness of concurrent applications that use CDLs. Our framework is built on top of two existing mechanisms, concurrent abstract predicate and fictional separation logic, with some enhancements such as borrowed heap and thread local abstraction. In addition, we propose a new inconsistency detection mechanism based on waits-for relation to guarantee deadlock freedom. Prior concurrency verification works have mostly focused on data-race freedom. As a practical proof of concept, we have implemented this new specification and verification mechanism for CDL in a new tool, called HIPCAP, on top of an existing HIP verifier. We have used this new tool to successfully verify various use cases for CDL.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/18/2022

A Pattern-based deadlock-freedom analysis strategy for concurrent systems

Local analysis has long been recognised as an effective tool to combat t...
research
05/20/2023

Formal Verification of Chase-Lev Deque in Concurrent Separation Logic

Chase-Lev deque is a concurrent data structure designed for efficient lo...
research
08/19/2020

Formalizing and Verifying Decentralized Systems with Extended Concurrent Separation Logic

Decentralized techniques are becoming crucial and ubiquitous with the ra...
research
05/06/2021

Scaling up Memory-Efficient Formal Verification Tools for Tree Ensembles

To guarantee that machine learning models yield outputs that are not onl...
research
08/20/2020

DataProVe: A Data Protection Policy and System Architecture Verification Tool

In this paper, we propose a tool, called DataProVe, for specifying high-...
research
09/24/2021

Automated Modular Verification for Race-Free Channels with Implicit and Explicit Synchronization

Ensuring the correctness of software for communication centric programs ...
research
09/15/2021

Dala: A Simple Capability-Based Dynamic Language Design For Data Race-Freedom

Dynamic languages like Erlang, Clojure, JavaScript, and E adopted data-r...

Please sign up or login with your details

Forgot password? Click here to reset