A Compositional Method for Verifying Software Transactional Memory

Subscribers:
344,000
Published on ● Video Link: https://www.youtube.com/watch?v=iAvY03ddpQ0



Duration: 1:18:14
49 views
0


We present a method for verifying software transactional memory (STM) implementations. We decompose the problem by viewing STM descriptions at two levels: algorithm-level descriptions and actual implementations. The proof of serializability of the algorithm-level description, which is generic and performed manually, is separated from the proof that the implementation is a correct refinement of the algorithm-level description, which is checked mechanically. In the algorithm-level proof for a lazy-invalidate, write-in-place STM, we model a program composed with an abstract STM, and devise a sufficient condition for serializability expressed as three intuitive properties. The implementation-level proof consists of checking whether these properties are satisfied by the STM implementation. We were able to express each check as an assertion in a particular *sequential* program that mimics interference between threads. This is a key benefit, as it allowed the assertion checks to be carried out using the sequential program verifier Boogie. We demonstrated our approach on a model of the Bartok STM. Noteworthy additional work since the August 2007 MSR talk on this project includes the following: (i) A formal, algorithm-level model and semantics for programs using transactions. This model handles nested transactions, conflicts and rollbacks. (ii) The definition of pure




Other Videos By Microsoft Research


2016-09-06Levy Processes and Applications to Machine Learning
2016-09-06TCP and P2P: supporting Internet from layer 4 and layer 7
2016-09-06Fighting concurrency bugs
2016-09-06Virtual Earth Summit - Welcome - Overview of the Summit, One Minute Introductions
2016-09-06Machine Understanding of Human Audio/ visual Affective Expressions
2016-09-06Enriching Speech Translation: Exploiting Information Beyond Words
2016-09-06Hardware-Software Co-Design for General-Purpose Processors [1/14]
2016-09-06Interaction Design Based on Human Capabilities for Contemporary and Emerging Technologies
2016-09-06Developing, Optimizing and Hosting Data Driven Web Applications
2016-09-06P2P and Online Social Networking Research at Mirage Group
2016-09-06A Compositional Method for Verifying Software Transactional Memory
2016-09-06Semantic Components: A Model for Enhancing Retrieval of Domain-Specific Information
2016-09-06Demystifying Internet Traffic
2016-09-06Disk Failure: How It Happens And What To Do About It
2016-09-06A Constraint Solver: Finding Models and Cores of Large Relational Specifications
2016-09-06Software & Architectural Techniques for Cache Leakage Reduction in Nanometer-scale Embedded Systems
2016-09-06Data-driven methods in Description-based Audio Information Processing
2016-09-06Single Image Dehazing
2016-09-06EE Talk - How to Make Things Happen: Mastering Project Management
2016-09-06XNA Game Studio Workshop - Session Two
2016-09-06Path Projection for User-Centered Static Analysis Tools



Tags:
microsoft research