Abstraction for concurrent objects

Concurrent data structures are usually designed to satisfy correctness conditions such as sequential consistency or linearizability. In this paper, we consider the following fundamental question: What guarantees are provided by these conditions for client programs? We formally show that these conditions can be characterized in terms of observational refinement. Our study also provides a new understanding of sequential consistency and linearizability in terms of abstraction of dependency between computation steps of client programs.

[1]  Antoni W. Mazurkiewicz,et al.  Traces, Histories, Graphs: Instances of a Process Monoid , 1984, International Symposium on Mathematical Foundations of Computer Science.

[2]  Julian Rathke,et al.  A fully abstract may testing semantics for concurrent objects , 2005, Theor. Comput. Sci..

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

[4]  Yehuda Afek,et al.  Lazy caching , 1993, TOPL.

[5]  Ugo Montanari,et al.  Modelling Concurrent Accesses to Shared Data via Petri Nets , 1994, PROCOMET.

[6]  Stephen Brookes A Grainless Semantics for Parallel Programs with Shared Mutable Data , 2005, MFPS.

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

[8]  Susanne Graf,et al.  Characterization of a sequentially consistent memory and verification of a cache memory by abstraction , 1999, Distributed Computing.

[9]  Viggo Stoltenberg-hansen,et al.  In: Handbook of Logic in Computer Science , 1995 .

[10]  Gottfried Vossen,et al.  Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control and Recovery , 2002 .

[11]  Amir Pnueli,et al.  Proving refinement using transduction , 1999, Distributed Computing.

[12]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[13]  Vaughan R. Pratt,et al.  The Pomset Model of Parallel Processes: Unifying the Temporal and the Spatial , 1984, Seminar on Concurrency.

[14]  R. E. A. Mason,et al.  Information Processing 83 , 1984 .

[15]  Anindya Banerjee,et al.  Representation independence, confinement and access control [extended abstract] , 2002, POPL '02.

[16]  John C. Reynolds,et al.  Types, Abstraction and Parametric Polymorphism , 1983, IFIP Congress.

[17]  C. A. R. Hoare,et al.  Prespecification in Data Refinement , 1987, Inf. Process. Lett..

[18]  G.D. Plotkin,et al.  LCF Considered as a Programming Language , 1977, Theor. Comput. Sci..

[19]  D. M. Hutton,et al.  The Art of Multiprocessor Programming , 2008 .

[20]  Gary J. Nutt,et al.  A unified theory of shared memory consistency , 2002, JACM.

[21]  Martín Abadi,et al.  A Logic for Parametric Polymorphism , 1993, TLCA.

[22]  Christos H. Papadimitriou,et al.  The serializability of concurrent database updates , 1979, JACM.

[23]  Mogens Nielsen,et al.  Models for Concurrency , 1992 .

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

[25]  John C. Reynolds Toward a Grainless Semantics for Shared-Variable Concurrency , 2004, FSTTCS.

[26]  C. A. R. Hoare,et al.  Data Refinement Refined , 1986, ESOP.

[27]  John C. Mitchell,et al.  Abstract types have existential type , 1988, TOPL.

[28]  H SchollMarc,et al.  Transactional information systems , 2001 .

[29]  Stephen D. Brookes,et al.  A Semantics for Concurrent Separation Logic , 2004, CONCUR.

[30]  C. A. R. Hoare,et al.  Proof of correctness of data representations , 1972, Acta Informatica.

[31]  Marc H. Scholl,et al.  Transactional information systems: theory, algorithms, and the practice of concurrency control and recovery , 2001, SGMD.

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