Explanation of two non-blocking shared-variable communication algorithms

Simpson and Harris have described multi-slot algorithms implementing a single-place buffer, each operating without explicit hardware synchronisation mechanisms. Conventional refinement and proof techniques have explained that these algorithms work, but do not give convincing descriptions of how they work. An unconventional refinement process starting from the classic single-variable buffer, using both data and atomicity refinement and drawing information from unsuccessful steps, derives each algorithm. The logic used is RGSep, a marriage of rely/guarantee and concurrent separation logic. Extensive detailed verifications are described. The result is an explanation of how the algorithms work and some pointers to how such algorithms might be devised.

[1]  Neil Henderson,et al.  Proving the Correctness of Simpson's 4-Slot ACM Using an Assertional Rely-Guarantee Proof Method , 2003, FME.

[2]  Hugo Simpson,et al.  The Mascot method , 1986, Softw. Eng. J..

[3]  H. R. Simpson Correctness analysis for class of asynchronous communication mechanisms , 1992 .

[4]  Robert W. Floyd,et al.  Assigning Meanings to Programs , 1993 .

[5]  Edsger Wybe Dijkstra,et al.  Cooperating Sequential Processes, Technical Report EWD-123 , 1965 .

[6]  Neil Henderson,et al.  Ramifications of metastability in bit variables explored via Simpson’s 4-slot mechanism , 2004, Formal Aspects of Computing.

[7]  Scott Owens,et al.  Reasoning about the Implementation of Concurrency Abstractions on x86-TSO , 2010, ECOOP.

[8]  Per Brinch Hansen The Origin of Concurrent Programming , 2002, Springer New York.

[9]  Cliff B. Jones,et al.  Specification and Design of (Parallel) Programs , 1983, IFIP Congress.

[10]  John Rushby Model Checking Simpson's Four-Slot Fully Asynchronous Communication Mechanism , 2002 .

[11]  Maurice Herlihy,et al.  Linearizability: a correctness condition for concurrent objects , 1990, TOPL.

[12]  Maurice Herlihy,et al.  Wait-free synchronization , 1991, TOPL.

[13]  Richard Bornat,et al.  Inter-process buffers in separation logic with rely-guarantee , 2010, Formal Aspects of Computing.

[14]  Hongseok Yang,et al.  Relational separation logic , 2007, Theor. Comput. Sci..

[15]  Cliff B. Jones,et al.  Splitting Atoms with Rely/Guarantee Conditions Coupled with Data Reification , 2008, ABZ.

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

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

[18]  I. Lakatos,et al.  Proofs and Refutations: Frontmatter , 1976 .

[19]  H. R. Simpson Four-slot fully asynchronous communication mechanism , 1990 .

[20]  Peter W. O'Hearn,et al.  Resources, Concurrency and Local Reasoning , 2004, CONCUR.

[21]  H. R. Simpson,et al.  New algorithms for asynchronous communication , 1997 .

[22]  Francesco Zappa Nardelli,et al.  The semantics of power and ARM multiprocessor machine code , 2009, DAMP '09.

[23]  Per Brinch Hansen,et al.  The Origin of Concurrent Programming: From Semaphores to Remote Procedure Calls , 2013 .

[24]  Neil Henderson,et al.  The Formal Classification and Verification of Simpson's 4-Slot Asynchronous Communication Mechanism , 2002, FME.

[25]  Viktor Vafeiadis,et al.  Modular fine-grained concurrency verification , 2008 .

[26]  H. R. Simpson,et al.  Role model analysis of an asynchronous communication mechanism , 1997 .

[27]  Edsger W. Dijkstra,et al.  Cooperating sequential processes , 2002 .

[28]  Viktor Vafeiadis,et al.  A Marriage of Rely/Guarantee and Separation Logic , 2007, CONCUR.

[29]  Imre Lakatos,et al.  On the Uses of Rigorous Proof. (Book Reviews: Proofs and Refutations. The Logic of Mathematical Discovery) , 1977 .

[30]  K. Jackson,et al.  Process Synchronisation in MASCOT , 1979, Comput. J..

[31]  Jade Alglave,et al.  Understanding POWER multiprocessors , 2011, PLDI '11.

[32]  Cliff B. Jones,et al.  Elucidating concurrent algorithms via layers of abstraction and reification , 2011, Formal Aspects of Computing.

[33]  Tom Ridge,et al.  The semantics of x86-CC multiprocessor machine code , 2009, POPL '09.