University of Cambridge > Talks.cam > Computer Laboratory Automated Reasoning Group Lunches > Proving Liveness Properties of Non-blocking Data Structures

Proving Liveness Properties of Non-blocking Data Structures

Add to your list(s) Download to your calendar using vCal

If you have a question about this talk, please contact Thomas Tuerk.

In non-blocking concurrency, instead of using mutual exclusion to guard access to shared data structures, threads attempt to make concurrent changes, looping and trying again if a particular attempt fails to achieve the desired result. Algorithms operating on non-blocking data structures are complicated and hard to get right, hence, their formal verification is highly desirable. The work in this direction has so far focused on verifying safety properties of these algorithms, such as memory safety or linearizability. However, operations on non-blocking data structures also have to satisfy certain liveness properties (wait-freedom, lock-freedom, and obstruction-freedom) that ensure their termination under various conditions. In this talk I will present a compositional proof system for verifying these properties based on a combination of rely-guarantee reasoning and separation logic.

This is joint work with Byron Cook, Matthew Parkinson, and Viktor Vafeiadis.

This talk is part of the Computer Laboratory Automated Reasoning Group Lunches series.

Tell a friend about this talk:

This talk is included in these lists:

Note that ex-directory lists are not shown.

 

© 2006-2018 Talks.cam, University of Cambridge. Contact Us | Help and Documentation | Privacy and Publicity