Open Transactions on Shared Memory

Transactional memory has arisen as a good way for solving many of the issues of lock-based programming. However, most implementations admit isolated transactions only, which are not adequate when we have to coordinate communicating processes. To this end, in this paper we present OCTM, an Haskell-like language with open transactions over shared transactional memory: processes can join transactions at runtime just by accessing to shared variables. Thus a transaction can co-operate with the environment through shared variables, but if it is rolled-back, also all its effects on the environment are retracted. For proving the expressive power of OCTM we give an implementation of TCCS m , a CCS-like calculus with open transactions.

[1]  Maurice Herlihy,et al.  Transactional memory: beyond the first two decades , 2012, SIGA.

[2]  Alessio Mansutti,et al.  Distributed execution of bigraphical reactive systems , 2015, Electron. Commun. Eur. Assoc. Softw. Sci. Technol..

[3]  Krysia Broda,et al.  Speculative Abductive Reasoning for Hierarchical Agent Systems , 2010, CLIMA.

[4]  Alessio Mansutti,et al.  Multi-agent Systems Design and Prototyping with Bigraphical Reactive Systems , 2014, DAIS.

[5]  Maurice Herlihy,et al.  Transactional Memory: Architectural Support For Lock-free Data Structures , 1993, Proceedings of the 20th Annual International Symposium on Computer Architecture.

[6]  Simon L. Peyton Jones,et al.  Composable memory transactions , 2005, CACM.

[7]  Xavier Leroy,et al.  A Formally Verified Compiler Back-end , 2009, Journal of Automated Reasoning.

[8]  Matthew Hennessy,et al.  Liveness of Communicating Transactions (Extended Abstract) , 2010, APLAS.

[9]  Matthew Hennessy,et al.  Bisimulations for Communicating Transactions - (Extended Abstract) , 2014, FoSSaCS.

[10]  Jens Palsberg,et al.  Communicating memory transactions , 2011, PPoPP '11.

[11]  Maurice Herlihy,et al.  Transactional Memory: Architectural Support For Lock-free Data Structures , 1993, Proceedings of the 20th Annual International Symposium on Computer Architecture.

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

[13]  Vincent Danos,et al.  Transactions in RCCS , 2005, CONCUR.

[14]  Leslie Lamport,et al.  Consensus on transaction commit , 2004, TODS.

[15]  Roberto Bruni,et al.  Nested Commits for Mobile Calculi: Extending Join , 2004, IFIP TCS.

[16]  Simon L. Peyton Jones,et al.  Concurrent Haskell , 1996, POPL '96.

[17]  Matthew Hennessy,et al.  Communicating Transactions - (Extended Abstract) , 2010, CONCUR.

[18]  Nir Shavit,et al.  Software transactional memory , 1995, PODC '95.

[19]  Martín Abadi,et al.  Semantics of transactional memory and automatic mutual exclusion , 2011, TOPL.