Automatic semantic locking

Guy Golan-Gueta, G. Ramalingam, Mooly Sagiv, Eran Yahav

Research output: Contribution to journalArticlepeer-review

Abstract

In this paper, we consider concurrent programs in which the shared state consists of instances of linearizable ADTs (abstract data types).We develop a novel automated approach to concurrency control that addresses a common need: the need to atomically execute a code fragment, which may contain multiple ADT operations on multiple ADT instances. In our approach, each ADT implements ADT-specific semantic locking operations that serve to exploit the semantics of ADT operations. We develop a synthesis algorithm that automatically inserts calls to these locking operations in a set of given code fragments (in a client program) to ensure that these code fragments execute atomically without deadlocks, and without rollbacks. We have implemented the synthesis algorithm and several general-purpose ADTs with semantic locking. We have applied the synthesis algorithm to several Java programs that use these ADTs. Our results show that our approach enables efficient and scalable synchronization.

Original languageEnglish
Pages (from-to)385-386
Number of pages2
JournalACM SIGPLAN Notices
Volume49
Issue number8
DOIs
StatePublished - Aug 2014

Keywords

  • Compiler
  • Composition
  • Synchronization

Fingerprint

Dive into the research topics of 'Automatic semantic locking'. Together they form a unique fingerprint.

Cite this