Logical Concurrency Control from Sequential Proofs

We are interested in identifying and enforcing the isolation requirements of a concurrent program, i.e., concurrency control that ensures that the program meets its specification. The thesis of this paper is that this can be done systematically starting from a sequential proof, i.e., a proof of correctness of the program in the absence of concurrent interleavings. We illustrate our thesis by presenting a solution to the problem of making a sequential library thread-safe for concurrent clients. We consider a sequential library annotated with assertions along with a proof that these assertions hold in a sequential execution. We show how we can use the proof to derive concurrency control that ensures that any execution of the library methods, when invoked by concurrent clients, satisfies the same assertions. We also present an extension to guarantee that the library is linearizable with respect to its sequential specification.

[1]  Thomas A. Henzinger,et al.  SYNERGY: a new algorithm for property checking , 2006, SIGSOFT '06/FSE-14.

[2]  Frank Tip,et al.  Associating synchronization constraints with data in an object-oriented language , 2006, POPL '06.

[3]  Thomas A. Henzinger,et al.  Lazy abstraction , 2002, POPL '02.

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

[5]  Jeffrey S. Foster,et al.  Lock Inference for Atomic Sections , 2006 .

[6]  Eran Yahav,et al.  Deriving linearizable fine-grained concurrent objects , 2008, PLDI '08.

[7]  Eran Yahav,et al.  Inferring Synchronization under Limited Observability , 2009, TACAS.

[8]  Paul C. Attie,et al.  Synthesis of concurrent systems with many similar processes , 1998, TOPL.

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

[10]  Paul C. Attie,et al.  Synthesis of concurrent programs for an atomic read/write model of computation , 2001, TOPL.

[11]  Armando Solar-Lezama,et al.  Sketching concurrent data structures , 2008, PLDI '08.

[12]  Stephen N. Freund,et al.  Automatic Synchronization Correction , 2005 .

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

[14]  Sriram K. Rajamani,et al.  Bebop: A Symbolic Model Checker for Boolean Programs , 2000, SPIN.

[15]  David Gay,et al.  Autolocker: synchronization inference for atomic sections , 2006, POPL '06.

[16]  Sumit Gulwani,et al.  Inferring locks for atomic sections , 2008, PLDI '08.

[17]  Masaaki Mizuno,et al.  Invariant-based specification, synthesis, and verification of synchronization in concurrent programs , 2002, ICSE '02.

[18]  Rupak Majumdar,et al.  Lock allocation , 2007, POPL '07.