Verification of Scalable Synchronous Queue

Lock-free algorithms are extremely hard to be built correct due to their fine-grained concurrency natures. Formal techniques for verifying them are crucial. We present a framework for verification of CAS-based lock-free algorithms, and prove a nontrivial lock-free algorithm Scalable Synchronous Queue that is practically adopted in Java 6. The strength of our approach lies on that it relieves the dependence on auxiliary variables/commands, thus is relatively easier to conduct and comprehend, comparing to existing works.

[1]  Leslie Lamport,et al.  Proving Liveness Properties of Concurrent Programs , 1982, TOPL.

[2]  Chung-Kil Hur,et al.  Separation Logic in the Presence of Garbage Collection , 2011, 2011 IEEE 26th Annual Symposium on Logic in Computer Science.

[3]  Peter W. O'Hearn,et al.  Modular verification of a non-blocking stack , 2007, POPL '07.

[4]  Cliff B. Jones,et al.  Tentative steps toward a development method for interfering programs , 1983, TOPL.

[5]  Joey W. Coleman Expression Decomposition in a Rely/Guarantee Context , 2008, VSTTE.

[6]  Vincent Danos,et al.  Reversible Communicating Systems , 2004, CONCUR.

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

[8]  Susan S. Owicki,et al.  Modular verification of concurrent programs , 1982, POPL '82.

[9]  Aaron Turon,et al.  A separation logic for refining concurrent objects , 2011, POPL '11.

[10]  John C. Reynolds,et al.  Separation logic: a logic for shared mutable data structures , 2002, Proceedings 17th Annual IEEE Symposium on Logic in Computer Science.

[11]  William N. Scherer,et al.  Scalable synchronous queues , 2009, Commun. ACM.

[12]  Eran Yahav,et al.  Automatically Verifying Concurrent Queue Algorithms , 2003, SoftMC@CAV.

[13]  永田 守男,et al.  Verifying Properties of Parallel Programs : An Axiomatic Approach , 1976 .

[14]  Theo D'Hondt ECOOP 2010 - Object-Oriented Programming, 24th European Conference, Maribor, Slovenia, June 21-25, 2010. Proceedings , 2010, ECOOP.

[15]  Robert Colvin,et al.  A Scalable Lock-Free Stack Algorithm and its Verification , 2007, Fifth IEEE International Conference on Software Engineering and Formal Methods (SEFM 2007).

[16]  Paul Gastin,et al.  CONCUR 2010 - Concurrency Theory, 21th International Conference, CONCUR 2010, Paris, France, August 31-September 3, 2010. Proceedings , 2010, CONCUR.

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

[18]  Brian Campbell,et al.  Amortised Memory Analysis Using the Depth of Data Structures , 2009, ESOP.

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

[20]  Hongseok Yang,et al.  Variables as Resource in Separation Logic , 2005, MFPS.

[21]  Viktor Vafeiadis,et al.  Proving that non-blocking algorithms don't block , 2009, POPL '09.

[22]  Stephen Brookes A semantics for concurrent separation logic , 2007, Theor. Comput. Sci..

[23]  Viktor Vafeiadis,et al.  Concurrent Abstract Predicates , 2010, ECOOP.

[24]  Xinyu Feng,et al.  On the Relationship Between Concurrent Separation Logic and Assume-Guarantee Reasoning , 2007, ESOP.

[25]  Richard Bornat,et al.  Variables as Resource in Hoare Logics , 2006, 21st Annual IEEE Symposium on Logic in Computer Science (LICS'06).

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

[27]  Kim G. Larsen,et al.  On Modal Refinement and Consistency , 2007, CONCUR.

[28]  Yu Zhang,et al.  Reasoning about Optimistic Concurrency Using a Program Logic for History , 2010, CONCUR.