Verifying Transactional Memory with TLPVSTransactional memory is a programming abstraction intended to simplify the synchronization of conflicting memory accesses (by concurrent threads) without the difficulties associated with locks. In previous work we showed how to specify transactional memory in terms of the admissible interchange of transaction operations, and give proof rules for showing that an implementation satisfies such a specification. This notion of an admissible interchange is a key to our ability to use a model checker, and lets us capture the various notions of transaction conflict as characterized by Scott. However, automatic proofs according to the new proof rules is well beyond the capabilities of current model checking techniques, both in terms of the data structures needed and the nature of the proof rule itself. We propose to use TLPVS to overcome the difficulties and to produce a machine checkable, deductive proof for the correctness of implementations of transactional memory systems. Download
A proof of LTM
|