Skip to main content
Kent Academic Repository

Reasoning about the Implementation of Concurrency Abstractions on x86-TSO

Owens, Scott (2010) Reasoning about the Implementation of Concurrency Abstractions on x86-TSO. In: d'Hondt, Theo, ed. ECOOP 2010 – Object-Oriented Programming 24th European Conference. Lecture Notes in Computer Science . Springer, Berlin, Germany, pp. 478-503. ISBN 978-3-642-14106-5. E-ISBN 978-3-642-14107-2. (doi:10.1007/978-3-642-14107-2_23) (The full text of this publication is not currently available from this repository. You may be able to access a copy if URLs are provided) (KAR id:31901)

The full text of this publication is not currently available from this repository. You may be able to access a copy if URLs are provided.
Official URL:
http://dx.doi.org/10.1007/978-3-642-14107-2_23

Abstract

With the rise of multi-core processors, shared-memory concurrency has become a widespread feature of computation, from hardware, to operating systems, to programming languages such as C++ and Java. However, none of these provide sequentially consistent shared memory; instead they have relaxed memory models, which make concurrent programs even more challenging to understand. Programming language implementations run on hardware memory models, so VM and run-time system implementors must reason at both levels. Of particular interest are the low-level implementations of the abstractions that support language-level concurrency—especially because they invariably contain data races.

In this paper, we develop a novel principle for reasoning about assembly programs on our previous x86-TSO memory model, and we use it to analyze five concurrency abstraction implementations: two spinlocks (from Linux); a non-blocking write protocol; the double-checked locking idiom; and java.util.concurrent’s Parker. Our principle, called triangular-race freedom, strengthens the usual data-race freedom style of reasoning.

Item Type: Book section
DOI/Identification number: 10.1007/978-3-642-14107-2_23
Uncontrolled keywords: Memory Model, Critical Section, Mutual Exclusion, Data Race, Sequential Consistency
Subjects: Q Science > QA Mathematics (inc Computing science) > QA 76 Software, computer programming,
Divisions: Divisions > Division of Computing, Engineering and Mathematical Sciences > School of Computing
Depositing User: Scott Owens
Date Deposited: 24 Oct 2012 10:16 UTC
Last Modified: 16 Nov 2021 10:09 UTC
Resource URI: https://kar.kent.ac.uk/id/eprint/31901 (The current URI for this page, for reference purposes)

University of Kent Author Information

  • Depositors only (login required):

Total unique views for this document in KAR since July 2020. For more details click on the image.