Summary
Given a sequential implementation of an arbitrary data object, a wait-free, linearizable concurrent implementation is constructed with space complexity quadratic in the number of processes. If processes do not concurrently invoke, the amortized time complexity of the invocations is independent of the number of processes. The worst case time complexity is linear in the number of processes. The construction is based on a compare&swap register. The correctness is proved by means of invariants and stability properties. Since it concerns memory reallocation by concurrent processes in a fault-tolerant setting, this proof is highly nontrivial.
Similar content being viewed by others
References
Apt KR, Olderog E-R: Verification of sequential and concurrent programs. Springer, New York, 1991
Chandy KM, Misra J: Parallel program design: a Foundation. Addison-Wesley, 1988
Fischer MJ, Lynch NA, Paterson MS: Impossibility of distributed consensus with one faulty process. J ACM 32: 374–382 (1985)
Herlihy MP: Impossibility and universality results for wait-free synchronization. In: Proc 7th Annual ACM Symposium on Principles of Distributed Computing, August 1988
Herlihy MP: Wait-free synchronization. ACM Trans Program Lang Syst 13: 124–149 (1991)
Herlihy MP: A methodology for implementing highly concurrent data structures. In: Second ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming. SIGPLAN Notices 25(3) 197–206 (1990)
Herlihy MP, Wing J: Linearizability: a correctness condition for concurrent objects. ACM Trans Program Lang Syst 12: 563–592 (1990)
Hesselink WH: Wait-free linearization with a mechanical proof. Computing Science Notes Groningen CS 9306
Jonker JE: On-the-fly garbage collection for several mutators. Distrib Comput 5: 187–199 (1992)
Lamport L: The ‘Hoare Logic’ of concurrent programs. Acta Inf 14: 21–37 (1980)
Lamport L, Schneider F: The “Hoare Logic” of CSP, and all that. ACM Trans Program Lang Syst 6: 281–296 (1984)
Misra J: Loosely-coupled processes. In: Aarts EHL, Van Leeuwen J, Rem M (eds): Parallel architectures and languages Europe, vol 2. Lect Notes Comput Sci, vol 506 Springer, Berlin Heidelberg New York 1991, pp. 1–26
Owicki S, Gries D: An axiomatic proof technique for parallel programs. Acta Inf 6: 319–340 (1976)
Plotkin SA: Sticky bits and universality of consensus. In: Proceedings of the 8th ACM Symposium on Principles of Distributed Computing 1989, pp 159–176
Author information
Authors and Affiliations
Additional information
Wim H. Hesselink received his Ph.D. in mathematics from the University of Utrecht in 1975. After ten years of research in algebraic groups he turned to computer science. Since 1985 he has been an associate profesoor with the Department of Computing Science at the University of Groningen. In 1986/1987 he was on sabbatical leave with the Department of Computer Sciences of the University of Texas at Austin. His research interests include aspects and modalities of nondeterminacy, predicate transformation semantics, distributed programming, design and correctness of algorithms, and mechanical theorem proving.
Rights and permissions
About this article
Cite this article
Hesselink, W.H. Wait-free linearization with an assertional proof. Distrib Comput 8, 65–80 (1994). https://doi.org/10.1007/BF02280829
Received:
Accepted:
Issue Date:
DOI: https://doi.org/10.1007/BF02280829