Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/2184121.2184157guidebooksArticle/Chapter ViewAbstractPublication PagesBookacm-pubtype
chapter

On the implementation of concurrent objects

Published: 01 January 2011 Publication History

Abstract

The implementation of objects shared by concurrent processes, with provable safety and liveness guarantees, is a fundamental issue of concurrent programming in shared memory systems. It is now largely accepted that linearizability (or atomicity) is an appropriate consistency condition for concurrent objects. On the liveness side, progress conditions (mainly absence of deadlock or the stronger absence of starvation) have been stated and investigated for a long time and are now well-mastered. The situation is different in asynchronous shared memory systems prone to process failures.
This paper visits three progress conditions suited to concurrent objects in presence of failures, namely obstruction-freedom, non-blocking and wait-freedom. To that end, the paper also visits appropriate computation models and paradigm problems to illustrate this family of progress conditions. The paper has consequently an introductory and survey flavor. Its aim is to help people better understand the difficulties, subtleties and beauties encountered when one has to implement concurrent objects despite the net effect of asynchrony and failures.

References

[1]
Afek, Y., Weisberger, E., Weisman, H.: A Completeness Theorem for a Class of Synchronization Objects. In: Proc. 12th Int'l ACM Symposium on Principles of Distributed Computing (PODC 1993), pp. 159-168. ACMpress, New York (1993)
[2]
Afek, Y., Attiya, H., Dolev, D., Gafni, E., Merritt, M., Shavit, N.: Atomic Snapshots of Shared Memory. Journal of the ACM 40(4), 873-890 (1993)
[3]
Attiya, H., Bar-Noy, A., Dolev, D., Peleg, D., Reischuk, R.: Renaming in an Asynchronous Environment. Journal of the ACM 37(3), 524-548 (1990)
[4]
Attiya, H., Welch, J.: Distributed Computing: Fundamentals, Simulations and Advanced Topics, 2nd edn., 414 pages. Wiley-Interscience, Hoboken (2004)
[5]
Bernstein, P. A., Hadzilacos, V., Goodman, N.: Concurrency Control and Recovery in Database Systems, 370 pages. Addison Wesley Publishing Company, Reading (1987)
[6]
Castañeda, A., Rajsbaum, S., Raynal, M.: The Renaming Problem in Shared Memory Systems: an Introduction. To appear in Computer Science Review (2011)
[7]
Chandra, T., Toueg, S.: Unreliable Failure Detectors for Reliable Distributed Systems. Journal of the ACM 43(2), 225-267 (1996)
[8]
Colvin, R., Groves, L., Luchangco, V., Moir, M.: Formal verification of a lazy concurrent list-based set algorithm. In: Ball, T., Jones, R. B. (eds.) CAV 2006. LNCS, vol. 4144, pp. 475-488. Springer, Heidelberg (2006)
[9]
Dijkstra, E. W. D.:Hierarchical Ordering of Sequential Processes. Acta Informatica 1(1), 115- 138 (1971)
[10]
Fischer, M. J., Lynch, N. A., Paterson, M. S.: Impossibility of Distributed Consensus with One Faulty Process. Journal of the ACM 32(2), 374-382 (1985)
[11]
Guerraoui, R., Kapalka, M., Kuznetsov, P.: The Weakest Failure Detectors to Boost Obstruction-freedom. Distributed Computing 20(6), 415-433 (2008)
[12]
Guerraoui, R., Raynal, M.: A Universal Construction for Wait-free Objects. In: Proc. ARES 2007 Int'l Workshop on Foundations of Fault-tolerant Distributed Computing (FOFDC 2007), pp. 959-966. IEEE Press, New York (2007)
[13]
Guerraoui, R., Raynal, M.: From Unreliable Objects to Reliable Objects: the Case of Atomic Registers and Consensus. In: Malyshkin, V. E. (ed.) PaCT 2007. LNCS, vol. 4671, pp. 47-61. Springer, Heidelberg (2007)
[14]
Harris, T. L., Fraser, K., Pratt, I. A.: A Practical Multi-word Compare-and-Swap Operation. In:Malkhi, D. (ed.) DISC 2002. LNCS, vol. 2508, pp. 265-279. Springer, Heidelberg (2002)
[15]
Heller, S., Herlihy, M. P., Luchangco, V., Moir, M., Scherer III, W., Shavit, N.: A Lazy Concurrent List-Based Algorithm. Parallel Processing Letters 17(4), 411-424 (2007)
[16]
Herlihy, M. P.: Wait-Free Synchronization. ACM Transactions on Programming Languages and Systems 13(1), 124-149 (1991)
[17]
Herlihy, M. P., Luchangco, V., Marin, P., Moir, M.: Non-blocking Memory Management Support for for Dynamic-size Data Structures. ACM Transactions on Computers Systems 23(2), 146-196 (2005)
[18]
Herlihy, M. P., Luchangco, V., Moir, M.: Obstruction-free Synchronization: Double-ended Queues as an Example. In: Proc. 23th Int'l IEEE Conference on Distributed Computing Systems (ICDCS 2003), pp. 522-529. IEEE Press, New York (2003)
[19]
Herlihy, M. P., Shavit, N.: The Art ofMultiprocessor Programming, 508 pages. Morgan Kaufman Pub., San Francisco (2008)
[20]
Herlihy, M. P., Wing, J. M.: Linearizability: a Correctness Condition for Concurrent Objects. ACM Transactions on Programming Languages and Systems 12(3), 463-492 (1990)
[21]
Hewitt, C. E., Atkinson, R. R.: Specification and Proof Techniques for Serializers. IEEE Transactions on Software Engineering SE5(1), 1-21 (1979)
[22]
Hoare, C. A. R.:Monitors: an Operating System Structuring Concept. Communications of the ACM 17(10), 549-557 (1974)
[23]
Horning, J. J., Randell, B.: Process Structuring. ACM Computing Surveys 5(1), 5-30 (1973)
[24]
Imbs, D., Raynal, M.: A Note on Atomicity: Boosting Test&Set to Solve Consensus. Information Processing Letters 109(12), 589-591 (2009)
[25]
Imbs, D., Raynal, M.: The x-Wait-freedom Progress Condition. In: D'Ambra, P., Guarracino, M., Talia, D. (eds.) Euro-Par 2010. LNCS, vol. 6271, pp. 584-595. Springer, Heidelberg (2010)
[26]
Imbs, D., Raynal, M., Taubenfeld, G.: On Asymmetric Progress Conditions. In: Proc. 29th ACM Symposium on Principles of Distributed Computing (PODC 2010), pp. 55-64. ACM Press, New York (2010)
[27]
Imbs, D., Raynal, M.: A Simple Snapshot Algorithm for Multicore Systems. In: Proc. 5th IEEE Latin-American Symposium on Dependable Computing (LADC 2011). IEEE Press, Los Alamitos (2011)
[28]
Lamport, L.: How toMake a Multiprocessor Computer that Correctly Executes Multiprocess Programs. IEEE Transactions on Computers C28(9), 690-691 (1979)
[29]
Lamport, L.: On Interprocess Communication, Part 1: Models, Part 2: Algorithms. Distributed Computing 1(2), 77-101 (1986)
[30]
Lamport, L.: A Fast Mutual Exclusion Algorithm. ACM Transactions on Computer Systems 5(1), 1-11 (1987)
[31]
Ladam-Mozes, E., Shavit, N.: An Optimistic Approach to Lock-free FIFO queues. In: Liu, H. (ed.) DISC 2004. LNCS, vol. 3274, pp. 117-131. Springer, Heidelberg (2004)
[32]
Loui, M., Abu-Amara, H.:Memory Requirements for for agreement among Unreliable Asynchronous processes. Advances in Computing Research 4, 163-183 (1987)
[33]
Lynch, N. A.: Distributed Algorithms, 872 pages. Morgan Kaufman Pub., San Francisco (1996)
[34]
Michael, M. M., Scott, M. L.: Simple, Fast and Practical Blocking and Non-Blocking Concurrent Queue Algorithms. In: Proc. 15th Int'l ACM Symposium on Principles of Distributed Computing (PODC 1996), pp. 267-275. ACM Press, New York (1996)
[35]
Moir, M.: Practical Implementation of Non-Blocking Synchronization Primitives. In: Proc. 16th ACM Symposium on Principles of Distributed Computing (PODC 1997), pp. 219-228. ACM Press, New York (1997)
[36]
Moir, M., Nussbaum, D., Shalev, 0., Shavit, N.: Using Elimination to to Implement Scalable and Lock-free FIFO Queues. In: Proc. 17th ACM Symposium on Parallelism in Algorithms and Architectures (SPAA 2005), pp. 253-262. ACM Press, New York (2005)
[37]
Moir, M., Anderson, J.: Wait-Free Algorithms for Fast, Long-Lived Renaming. Science of Computer Programming 25(1), 1-39 (1995)
[38]
Raynal, M.: Algorithms forMutual Exclusion, 107 pages. TheMIT Press, Cambridge (1986) ISBN 0-262-18119-3
[39]
Raynal, M.: Synchronization is Coming Back, But is it the Same? In: IEEE 22nd Int'l Conference on Advanced Information Networking and Applications (AINA 2008), pp. 1-10. IEEE Press, New York (2008)
[40]
Raynal, M.: Locks Considered Harmful: a Look at Non-traditional Synchronization. In: Brinkschulte, U., Givargis, T., Russo, S. (eds.) SEUS 2008. LNCS, vol. 5287, pp. 369-380. Springer, Heidelberg (2008)
[41]
Raynal, M.: Failure Detectors for Asynchronous Distributed Systems: an Introduction. In: Wiley Encyclopdia of Computer Science and Engineering, vol. 2, pp. 1181-1191 (2009)
[42]
Raynal, M.: Shared Memory Synchronization in Presence of Failures: an Exercise-based Introduction. In: IEEE Int'l. Conference on Complex, Intelligent and Software Intensive Systems (CISIS 2009), pp. 9-18. IEEE Press, New York (2009)
[43]
Raynal, M.: Communication and Agreement Abstractions for Fault-Tolerant Asynchronous Distributed Systems, 251 pages. Morgan & Claypool Publishers (2010) ISBN 978-1-60845- 293-4
[44]
Shafiei, N.: Non-blocking Array-based Algorithms for Stacks and Queues. In: Garg, V., Wattenhofer, R., Kothapalli, K. (eds.) ICDCN 2009. LNCS, vol. 5408, pp. 55-66. Springer, Heidelberg (2008)
[45]
Taubenfeld, G.: Synchronization Algorithms and Concurrent Programming, 423 pages. Pearson Prentice-Hall (2006) ISBN 0-131-97259-6
[46]
Taubenfeld, G.: Contention-Sensitive Data Structure and Algorithms. In: Keidar, I. (ed.) DISC 2009. LNCS, vol. 5805, pp. 157-171. Springer, Heidelberg (2009)
[47]
Taubenfeld, G.: On the Computational Power of Shared Objects. In: Abdelzaher, T., Raynal, M., Santoro, N. (eds.) OPODIS 2009. LNCS, vol. 5923, pp. 270-284. Springer, Heildelberg (2009)
[48]
Taubenfeld, G.: The Computational Structure of Progress Conditions. In: Lynch, N. A., Shvartsman, A. A. (eds.) DISC 2010. LNCS, vol. 6343, pp. 221-235. Springer, Heidelberg (2010)
[49]
Tsigas, P., Zhang, Y.: A Simple, Fast and Scalable Non-blocking Concurrent FIFO Queue for Shared Memory Multiprocessor Systems. In: Proc. 13th ACM Symposium on Parallelism in Algorithms and Architectures (SPAA 2001), pp. 134-143. ACM Press, New York (2001)
[50]
Valois, J. D.: Implementing Lock-free Queues. In: Proc. 7th Int'l Conference on Parallel and Distributed Computing Systems (PDCS 1994), pp. 64-69. IEEE Press, New York (1994)

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Guide books
Dependable and Historic Computing: essays dedicated to Brian Randell on the occasion of his 75th birthday
January 2011
522 pages
ISBN:9783642245404
  • Editors:
  • Cliff B. Jones,
  • John L. Lloyd

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 01 January 2011

Author Tags

  1. asynchronous shared memory system
  2. atomicity
  3. compare&swap
  4. consensus number
  5. consensus object
  6. enriched system
  7. failure detector
  8. linearizability
  9. lock
  10. lock-freedom
  11. non-blocking
  12. obstruction-freedom
  13. process crash
  14. progress condition
  15. queue
  16. read/write atomic register
  17. set
  18. snapshot
  19. splitter
  20. synchronization
  21. system boosting
  22. timestamp
  23. wait-free algorithm

Qualifiers

  • Chapter

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 0
    Total Downloads
  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 28 Jan 2025

Other Metrics

Citations

View Options

View options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media