Tutor HuntResources C Plus Plus Resources

C++ Concurrency Memory Model

Concurrency Memory Model

Date : 22/04/2014

Author Information

Jems

Uploaded by : Jems
Uploaded on : 22/04/2014
Subject : C Plus Plus

Currently multi-threaded C or C++ programs combine a single- threaded programming language with a separate threads library. This is not entirely sound [7]. We describe an effort, currently nearing completion, to address these issues by explicitly providing semantics for threads in the next revision of the C++ standard. Our approach is similar to that recently followed by Java [25], in that, at least for a well- defined and interesting subset of the language, we give sequentially consistent semantics to programs that do not contain data races. Nonetheless, a number of our decisions are often surprising even to those familiar with the Java effort: We (mostly) insist on sequential consistency for race-free pro- grams, in spite of implementation issues that came to light after the Java work. We give no semantics to programs with data races. There are no benign C++ data races. We use weaker semantics for trylock than existing languages or libraries, allowing us to promise sequential consistency with an intuitive race definition, even for programs with trylock . This paper describes the simple model we would like to be able to provide for C++ threads programmers, and explain how this, to- gether with some practical, but often under-appreciated implemen- tation constraints, drives us towards the above decisions. Categories and Subject Descri ptors D.3.3 [ Programming Lan- guages ]: Language Constructs and Features-Concurrent Pro- gramming Structures; D.1.3 [ Programming Techniques ]: Concur- rent Programming-Parallel Programming; B.3.2 [ Memory Struc- tures ]: Design Styles-Shared Memory General Terms languages, standardization, reliability Keywords Memory consistency, memory model, sequential con- sistency, C++, trylock, data race

This resource was uploaded by: Jems

Other articles by this author