A separation logic for refining concurrent objects

Fine-grained concurrent data structures are crucial for gaining performance from multiprocessing, but their design is a subtle art. Recent literature has made large strides in verifying these data structures, using either atomicity refinement or separation logic with rely-guarantee reasoning. In this paper we show how the ownership discipline of separation logic can be used to enable atomicity refinement, and we develop a new rely-guarantee method that is localized to the definition of a data structure. We present the first semantics of separation logic that is sensitive to atomicity, and show how to control this sensitivity through ownership. The result is a logic that enables compositional reasoning about atomicity and interference, even for programs that use fine-grained synchronization and dynamic memory allocation.

[1]  Mark Moir,et al.  Concurrent Data Structures , 2004 .

[2]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

[3]  Stephen N. Zilles,et al.  Programming with abstract data types , 1974, SIGPLAN Symposium on Very High Level Languages.

[4]  C. A. R. Hoare Programs are predicates , 1984, Philosophical Transactions of the Royal Society of London. Series A, Mathematical and Physical Sciences.

[5]  Rob J. van Glabbeek,et al.  The Linear Time - Branching Time Spectrum II , 1993, CONCUR.

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

[7]  Shirley Dex,et al.  JR 旅客販売総合システム(マルス)における運用及び管理について , 1991 .

[8]  Peter W. O'Hearn,et al.  Abstraction for concurrent objects , 2009, Theor. Comput. Sci..

[9]  Davide Sangiorgi,et al.  The Pi-Calculus - a theory of mobile processes , 2001 .

[10]  Stephen D. Brookes Full Abstraction for a Shared-Variable Parallel Language , 1996, Inf. Comput..

[11]  Leslie Lamport,et al.  The temporal logic of actions , 1994, TOPL.

[12]  Maurice Herlihy,et al.  The art of multiprocessor programming , 2020, PODC '06.

[13]  Omer Subasi,et al.  Simplifying Linearizability Proofs with Reduction and Abstraction , 2010, TACAS.

[14]  Ralph-Johan Back,et al.  Refinement Calculus: A Systematic Introduction , 1998 .

[15]  Gavin M. Bierman,et al.  Separation logic and abstraction , 2005, POPL '05.

[16]  Serdar Tasiran,et al.  A calculus of atomic actions , 2009, POPL '09.

[17]  Richard J. Lipton,et al.  Reduction: a method of proving properties of parallel programs , 1975, CACM.

[18]  Peter W. O'Hearn,et al.  Blaming the client: on data refinement in the presence of pointers , 2009, Formal Aspects of Computing.

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

[20]  Maged M. Michael Hazard pointers: safe memory reclamation for lock-free objects , 2004, IEEE Transactions on Parallel and Distributed Systems.

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

[22]  Ralph-Johan Back,et al.  Refinement Calculus , 1998, Graduate Texts in Computer Science.

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

[24]  John C. Mitchell,et al.  Abstract types have existential types , 1985, POPL.

[25]  Peter W. O'Hearn,et al.  Abstraction for Concurrent Objects , 2009, ESOP.

[26]  A. Kock Strong functors and monoidal monads , 1972 .

[27]  James H. Morris Protection in programming languages , 1973, CACM.

[28]  Rob J. van Glabbeek,et al.  The Linear Time - Branching Time Spectrum I , 2001, Handbook of Process Algebra.

[29]  Peter W. O'Hearn,et al.  Local Action and Abstract Separation Logic , 2007, 22nd Annual IEEE Symposium on Logic in Computer Science (LICS 2007).

[30]  R. J. vanGlabbeek The linear time - branching time spectrum , 1990 .

[31]  Lindsay Groves Reasoning about Nonblocking Concurrency , 2009, J. Univers. Comput. Sci..

[32]  Rob J. van Glabbeek,et al.  The Linear Time-Branching Time Spectrum (Extended Abstract) , 1990, CONCUR.

[33]  Xinyu Feng Local rely-guarantee reasoning , 2009, POPL '09.

[34]  P ? ? ? ? ? ? ? % ? ? ? ? , 1991 .

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

[36]  Maged M. Michael,et al.  Nonblocking Algorithms and Preemption-Safe Locking on Multiprogrammed Shared Memory Multiprocessors , 1998, J. Parallel Distributed Comput..

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