TY - GEN
T1 - A programming language perspective on transactional memory consistency
AU - Attiya, Hagit
AU - Gotsman, Alexey
AU - Hans, Sandeep
AU - Rinetzky, Noam
PY - 2013
Y1 - 2013
N2 - Transactional memory (TM) has been hailed as a paradigm for simplifying concurrent programming. While several consistency conditions have been suggested for TM, they fall short of formalizing the intuitive semantics of atomic blocks, the interface through which a TM is used in a programming language. To close this gap, we formalize the intuitive expectations of a programmer as observational refinement between TM implementations: a concrete TM observationally refines an abstract one if every user-observable behavior of a program using the former can be reproduced if the program uses the latter. This allows the programmer to reason about the behavior of a program using the intuitive semantics formalized by the abstract TM; the observational refinement relation implies that the conclusions will carry over to the case when the program uses the concrete TM. We show that, for a particular programming language and notions of observable behavior, a variant of the well-known consistency condition of opacity is sufficient for observational refinement, and its restriction to complete histories is furthermore necessary. Our results suggest a new approach to evaluating and comparing TM consistency conditions. They can also reduce the effort of proving that a TM implements its programming language interface correctly, by only requiring its developer to show that it satisfies the corresponding consistency condition.
AB - Transactional memory (TM) has been hailed as a paradigm for simplifying concurrent programming. While several consistency conditions have been suggested for TM, they fall short of formalizing the intuitive semantics of atomic blocks, the interface through which a TM is used in a programming language. To close this gap, we formalize the intuitive expectations of a programmer as observational refinement between TM implementations: a concrete TM observationally refines an abstract one if every user-observable behavior of a program using the former can be reproduced if the program uses the latter. This allows the programmer to reason about the behavior of a program using the intuitive semantics formalized by the abstract TM; the observational refinement relation implies that the conclusions will carry over to the case when the program uses the concrete TM. We show that, for a particular programming language and notions of observable behavior, a variant of the well-known consistency condition of opacity is sufficient for observational refinement, and its restriction to complete histories is furthermore necessary. Our results suggest a new approach to evaluating and comparing TM consistency conditions. They can also reduce the effort of proving that a TM implements its programming language interface correctly, by only requiring its developer to show that it satisfies the corresponding consistency condition.
KW - Atomic blocks
KW - Observational refinement
KW - Transactional memory
UR - http://www.scopus.com/inward/record.url?scp=84883515637&partnerID=8YFLogxK
U2 - https://doi.org/10.1145/2484239.2484267
DO - https://doi.org/10.1145/2484239.2484267
M3 - منشور من مؤتمر
SN - 9781450320658
T3 - Proceedings of the Annual ACM Symposium on Principles of Distributed Computing
SP - 309
EP - 318
BT - PODC 2013 - Proceedings of the 2013 ACM Symposium on Principles of Distributed Computing
T2 - 2013 ACM Symposium on Principles of Distributed Computing, PODC 2013
Y2 - 22 July 2013 through 24 July 2013
ER -