Verification under causally consistent shared memory

We consider concurrent programs interacting with causally consistent shared memory. After describing the semantics of such programs, we outline several verification problems and survey some existing solutions.

[1]  Rachid Guerraoui,et al.  On verifying causal consistency , 2016, POPL.

[2]  Phillip B. Gibbons,et al.  Testing Shared Memories , 1997, SIAM J. Comput..

[3]  Ori Lahav,et al.  Robustness against release/acquire semantics , 2019, PLDI.

[4]  Leslie Lamport,et al.  How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs , 2016, IEEE Transactions on Computers.

[5]  Sebastian Burckhardt,et al.  On the verification problem for weak memory models , 2010, POPL '10.

[6]  Peter Sewell,et al.  A Better x86 Memory Model: x86-TSO , 2009, TPHOLs.

[7]  Sebastian Burckhardt,et al.  What's Decidable about Weak Memory Models? , 2012, ESOP.

[8]  Ori Lahav,et al.  Effective stateless model checking for C/C++ concurrency , 2017, Proc. ACM Program. Lang..

[9]  Xinyu Feng,et al.  Parameterized Memory Models and Concurrent Separation Logic , 2010, ESOP.

[10]  Roland Meyer,et al.  Robustness against Relaxed Memory Models , 2014, Software Engineering.

[11]  Susan Owicki,et al.  An axiomatic proof technique for parallel programs I , 1976, Acta Informatica.

[12]  Rachid Guerraoui,et al.  Laws of order: expensive synchronization in concurrent algorithms cannot be eliminated , 2011, POPL '11.

[13]  Parosh Aziz Abdulla,et al.  A Load-Buffer Semantics for Total Store Ordering , 2017, Log. Methods Comput. Sci..

[14]  Parosh Aziz Abdulla,et al.  Verification of programs under the release-acquire semantics , 2019, PLDI.

[15]  Sebastian Burckhardt,et al.  Effective Program Verification for Relaxed Memory Models , 2008, CAV.

[16]  Viktor Vafeiadis Program Verification Under Weak Memory Consistency Using Separation Logic , 2017, CAV.

[17]  Joseph Tassarotti,et al.  Verifying read-copy-update in a logic for weak memory , 2015, PLDI.

[18]  Roland Meyer,et al.  Checking and Enforcing Robustness against TSO , 2013, ESOP.

[19]  Suresh Jagannathan,et al.  Automated Detection of Serializability Violations under Weak Consistency , 2018, CONCUR.

[20]  Parosh Aziz Abdulla,et al.  Optimal stateless model checking under the release-acquire semantics , 2018, Proc. ACM Program. Lang..

[21]  Peter Sewell,et al.  Mathematizing C++ concurrency , 2011, POPL '11.

[22]  Sebastian Burckhardt,et al.  Principles of Eventual Consistency , 2014, Found. Trends Program. Lang..

[23]  Ori Lahav,et al.  Owicki-Gries Reasoning for Weak Memory Models , 2015, ICALP.

[24]  Ori Lahav,et al.  Strong Logic for Weak Memory: Reasoning About Release-Acquire Consistency in Iris , 2017, ECOOP.

[25]  Alexey Gotsman,et al.  A Framework for Transactional Consistency Models with Atomic Visibility , 2015, CONCUR.

[26]  Jeehoon Kang,et al.  Repairing sequential consistency in C/C++11 , 2017, PLDI.

[27]  Ori Lahav,et al.  Taming release-acquire consistency , 2016, POPL.

[28]  Dexter Kozen,et al.  Lower bounds for natural proof systems , 1977, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977).

[29]  Alexey Gotsman,et al.  Robustness against Consistency Models with Atomic Visibility , 2016, CONCUR.

[30]  Parosh Aziz Abdulla,et al.  Deciding Robustness against Total Store Ordering , 2011 .

[31]  John Derrick,et al.  Verifying C11 programs operationally , 2018, PPoPP.

[32]  Viktor Vafeiadis,et al.  GPS: navigating weak memory with ghosts, protocols, and separation , 2014, OOPSLA.

[33]  Jeehoon Kang,et al.  A promising semantics for relaxed-memory concurrency , 2017, POPL.

[34]  Peter W. O'Hearn,et al.  Resources, concurrency, and local reasoning , 2007 .

[35]  Peter Müller,et al.  Static serializability analysis for causal consistency , 2018, PLDI.

[36]  Happy Gogoi PROGRAMMING LANGUAGE C , 2015 .

[37]  Patrick Cousot,et al.  Ogre and Pythia: an invariance proof method for weak consistency models , 2017, POPL.

[38]  Jade Alglave,et al.  Herding cats: modelling, simulation, testing, and data-mining for weak memory , 2014, PLDI 2014.

[39]  Gil Neiger,et al.  Causal memory: definitions, implementation, and programming , 1995, Distributed Computing.

[40]  Viktor Vafeiadis,et al.  Relaxed separation logic: a program logic for C11 concurrency , 2013, OOPSLA.