skip to main content
review-article
Free Access

Mastering concurrent computing through sequential thinking

Authors Info & Claims
Published:20 December 2019Publication History
Skip Abstract Section

Abstract

A 50-year history of concurrency.

References

  1. Alpern, B. and Schneider, F.B. Defining liveness. Information Processing Letters 21, 4 (1985), 181--18.Google ScholarGoogle ScholarCross RefCross Ref
  2. Attiya, H., Bar-Noy, A., and Dolev, D. Sharing memory robustly in message-passing systems. JACM 42, 1 (1995), 121--132.Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Attiya, H., Ellen, F. and Morrison, A., Limitations of highly-available eventually-consistent data stores. IEEE Trans. Parallel Distributed Systems 28, 1 (2017), 141--155.Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Attiya, H. and Welch, J. Distributed Computing: Fundamentals, Simulations and Advanced Topics, (2nd Edition), Wiley, 2004.Google ScholarGoogle ScholarCross RefCross Ref
  5. Ben-Or, M. Another advantage of free choice: completely asynchronous agreement protocols. In Proc. 2nd ACM Symp. on Principles of Distributed Computing, (1983), 27--30.Google ScholarGoogle Scholar
  6. Brinch, H.P. (Ed.). The Origin of Concurrent Programming. Springer, (2002).Google ScholarGoogle Scholar
  7. Cachin, C. State machine replication with Byzantine faults. Replication. Springer LNCS 5959, (2011), 169--184.Google ScholarGoogle ScholarCross RefCross Ref
  8. Chandra, T.D., Hadzilacos, V., and Toueg, S. The weakest failure detector for solving consensus. JACM 43, 4 (1996), 685--722.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Calciu, I., Sen, S., Balakrishnan, M., and Aguilera, M. How to implement any concurrent data structure for modern servers. ACM Operating Systems Rev. 51, 1 (2017), 24--32.Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Castañeda, A., Rajsbaum, S., and Raynal, M. Unifying concurrent objects and distributed tasks: Interval-linearizability. JACM 65, 6 (2018), Article 45.Google ScholarGoogle Scholar
  11. Dijkstra, E.W. Solution of a problem in concurrent programming control. Comm. ACM 8, 8 (Sept. 1965), 569.Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Dijkstra, E.W. Cooperating sequential processes. Programming Languages. Academic Press, 1968, 43--112.Google ScholarGoogle Scholar
  13. Dijkstra, E.W. Hierarchical ordering of sequential processes. Acta Informatica 1, 1 (1971), 115--138.Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Dolev, D., Dwork, C., and Stockmeyer, L. On the minimal synchronism needed for distributed consensus. JACM 34, 1 (1987), 77--97.Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Fatourou, P. and Kallimanis, N.D. Highly-efficient wait-free synchronization. Theory of Computing Systems 55 (2014), 475--520.Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Fischer, M.J., Lynch, N.A., and Paterson, M.S. Impossibility of distributed consensus with one faulty process. JACM 32, 2 (1985), 374--382.Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Gilbert, S. and Lynch, N. Brewer's conjecture and the feasibility of consistent, available, partition-tolerant web services. SIGACT News 33, 2 (2002), 51--59.Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Hadzilacos, V. and Toueg, S. A modular approach to fault-tolerant broadcasts and related problems. TR 94-1425. Cornell Univ. (1994)Google ScholarGoogle Scholar
  19. Herlihy, M.P. Wait-free synchronization. ACM Trans. on Prog. Languages and Systems 13, 1 (1991), 124--149.Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Herlihy, M.P. and Moss, J.E.B. Transactional memory: Architectural support for lock-free data structures. In Proc. 20th ACM Int'l Symp. Computer Architecture. ACM Press, 1993, 289--300.Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Herlihy, M. and Shavit, N. The Art of Multiprocessor Programming. Morgan Kaufmann, ISBN 978-0-12-370591-4 (2008).Google ScholarGoogle Scholar
  22. Herlihy, M.P. and Wing, J.M. Linearizability: A correctness condition for concurrent objects. ACM Trans. Programming Languages and Systems 12, 2 (1990), 463--492.Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Lamport, L. A new solution of Dijkstra's concurrent programming problem. Commun. ACM 17, 8 (1974), 453--455.Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Lamport, L. Concurrent reading and writing. Commun. ACM 20, 11 (Nov. 1977), 806--811.Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Lamport, L. Time, clocks, and the ordering of events in a distributed system. Commun. ACM 21, 7 (Sept. 1978), 558--565.Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Lamport, L. On interprocess communication, Part I: Basic formalism. Distributed Computing 1, 2 (1986), 77--85.Google ScholarGoogle ScholarCross RefCross Ref
  27. Lamport, L. A fast mutual exclusion algorithm. ACM Trans. Computer Systems 5, 1 (1987), 1--11.Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Lamport, L. The part-time parliament. ACM Trans. Computer Systems 16, 2 (1998), 133--169.Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Mostéfaoui, Rajsbaum, S. and Raynal, M. Conditions on input vectors for concensus solvability in asynchronous distributed systems. JACM 50, 6 (2003, 922--954.Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Nakamoto, S. Bitcoin: A peer-to-peer electronic cash system. Unpublished manuscript (2008).Google ScholarGoogle Scholar
  31. Pease, M., Shostak, R. and Lamport, L. Reaching agreement in the presence of faults. JACM 27 (1980), 228--234.Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Peterson, G.L. Myths about the mutual exclusion problem. Information Processing Letters 12, 3 (1981), 115--116.Google ScholarGoogle ScholarCross RefCross Ref
  33. Peterson, G.L. Concurrent reading while writing. ACM Trans. on Prog. Languages and Systems (1983), 5:46--5:55.Google ScholarGoogle Scholar
  34. Rabin, M. Randomized Byzantine generals. Proc. 24th IEEE Symp. Foundations of Computer Science. IEEE Computer Society Press, 1983, 116--124.Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Raynal, M. Concurrent Programming: Algorithms, Principles and Foundations. Springer, 2013, ISBN 978-3-642-32026-2.Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Raynal, M. Distributed Algorithms for Message-Passing Systems. Springer, 2013, ISBN 978-3-642-38122-5.Google ScholarGoogle ScholarCross RefCross Ref
  37. Raynal, M. Fault-Tolerant Message-Passing Distributed Systems: An Algorithmic Approach. Springer, 2018, ISBN 978-3-319-94140-0.Google ScholarGoogle ScholarCross RefCross Ref
  38. Stearns, R.C., Lewis, P.M. and Rosenkrantz, D.J. Concurrency control for database systems. In Proc. 16th Conf. Found. Comp. Sci., (1976), 19--32.Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Schneider, F.B. Implementing fault-tolerant services using the state machine approach. ACM Computing Surveys 22, 4 (1990), 299--319.Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Shavit, N. and Touitou, D. Software transactional memory. Distributed Computing 10, 2 (1997), 99--116.Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Mastering concurrent computing through sequential thinking

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      cover image Communications of the ACM
      Communications of the ACM  Volume 63, Issue 1
      January 2020
      90 pages
      ISSN:0001-0782
      EISSN:1557-7317
      DOI:10.1145/3377354
      Issue’s Table of Contents

      Copyright © 2019 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 20 December 2019

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • review-article
      • Popular
      • Refereed

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    HTML Format

    View this article in HTML Format .

    View HTML Format