Formalising Progress Properties of Non-blocking Programs
A non-blocking program is one that uses non-blocking primitives, such as load-linked/store-conditional and compare-and-swap, for synchronisation instead of locks so that no process is ever blocked. According to their progress properties, non-blocking programs may be classified as wait-free, lock-free or obstruction-free. However, a precise description of these properties does not exist and it is not unusual to find a definition that is ambiguous or even incorrect. We present a formal definition of the progress properties so that any confusion is removed. The formalisation also allows one to prove the widely believed presumption that wait-freedom is a special case of lock-freedom, which in turn is a special case of obstruction-freedom.
KeywordsAtomic Statement Concurrent Program Proof Obligation Program Counter Weak Precondition
Unable to display preview. Download preview PDF.
- [Doh03]Doherty, S.: Modelling and verifying non-blocking algorithms that use dynamically allocated memory. Master’s thesis, Victoria University of Wellington (2003)Google Scholar
- [GD05]Goldson, D., Dongol, B.: Concurrent program design in the extended theory of Owicki and Gries. In: Atkinson, M., Dehne, F. (eds.) CATS. Conferences in Research and Practice in Information Technology, Newcastle, Australia, vol. 41, pp. 41–50 (2005)Google Scholar
- [HLM03]Herlihy, M., Luchangco, V., Moir, M.: Obstruction-free synchronization: Double-ended queues as an example. In: 23rd IEEE International Conference on Distributed Computing Systems, p. 522 (2003)Google Scholar
- [Moo02]Mooij, A.J.: Formal derivations of non-blocking multiprograms. Master’s thesis, Technische Universiteit Eindhoven (2002)Google Scholar
- [MP91]Massalin, H., Pu, C.: A lock-free multiprocessor OS kernel. Technical Report CUCS-005-91, Columbia University, New York (1991)Google Scholar
- [MP92]Manna, Z., Pnueli, P.: Temporal Verification of Reactive and Concurrent Systems: Specification. Springer, New York (1992)Google Scholar
- [SS05]Scherer, W.N., Scott, M.L.: Advanced contention management for dynamic software transactional memory. In: PODC, pp. 240–248. ACM Press, New York (2005)Google Scholar
- [Sun04]Sundell, H.: Efficient and practical non-blocking data structures. PhD thesis, Department of Computer Science, Chalmers University of Technology and Göteborg University (2004)Google Scholar