Verification of Shared-Reading Synchronisers

06/26/2018
by   Afshin Amighi, et al.
0

Synchronisation classes are an important building block for shared memory concurrent programs. Thus to reason about such programs, it is important to be able to verify the implementation of these synchronisation classes, considering atomic operations as the synchronisation primitives on which the implementations are built. For synchronisation classes controlling exclusive access to a shared resource, such as locks, a technique has been proposed to reason about their behaviour. This paper proposes a technique to verify implementations of both exclusive access and shared-reading synchronisers. We use permission-based Separation Logic to describe the behaviour of the main atomic operations, and the basis for our technique is formed by a specification for class AtomicInteger, which is commonly used to implement synchronisation classes in java.util.concurrent. To demonstrate the applicability of our approach, we mechanically verify the implementation of various synchronisation classes like Semaphore, CountDownLatch and Lock.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
06/29/2021

Linearizable Implementations Suffice for Termination of Randomized Concurrent Programs

Strong adversaries obtain additional power when a linearizable object is...
research
09/01/2021

Concurrent matching logic

Abstract. Matching logic cannot handle concurrency. We introduce concurr...
research
07/10/2019

CallE: An Effect System for Method Calls

Effect systems are used to statically reason about the effects an expres...
research
11/04/2019

Verifying Visibility-Based Weak Consistency

Multithreaded programs generally leverage efficient and thread-safe conc...
research
09/09/2023

Leaf: Modularity for Temporary Sharing in Separation Logic (Extended Version)

In concurrent verification, separation logic provides a strong story for...
research
04/08/2019

Analysis of Commutativity with State-Chart Graph Representation of Concurrent Programs

We present a new approach to check for commutativity in concurrent progr...
research
10/23/2018

Some Challenges of Specifying Concurrent Program Components

The purpose of this paper is to address some of the challenges of formal...

Please sign up or login with your details

Forgot password? Click here to reset