skip to main content
article
Free Access

A methodology for implementing highly concurrent data structures

Authors Info & Claims
Published:01 February 1990Publication History
Skip Abstract Section

Abstract

A concurrent object is a data structure shared by concurrent processes. Conventional techniques for implementing concurrent objects typically rely on critical sections: ensuring that only one process at a time can operate on the object. Nevertheless, critical sections are poorly suited for asynchronous systems: if one process is halted or delayed in a critical section, other, non-faulty processes will be unable to progress. By contrast, a concurrent object implementation is non-blocking if it always guarantees that some process will complete an operation in a finite number of steps, and it is wait-free if it guarantees that each process will complete an operation in a finite number of steps. This paper proposes a new methodology for constructing non-blocking and wait-free implementations of concurrent objects. The object's representation and operations are written as stylized sequential programs, with no explicit synchronization. Each sequential operation is automatically transformed into a non-blocking or wait-free operation using novel synchronization and memory management algorithms. These algorithms are presented for a multiple instruction/multiple data (MIMD) architecture in which n processes communicate by applying read, write, and compare&swap operations to a shared memory.

References

  1. 1 G.R. Andrews and F.B. Schneider. Concepts and notations for concurrent programming. A CM Computing Surveys, 15(I):3-43, 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 2 R. Bayer and M. Schkolnick. Concurrency of operations on b-trees. Acta Informa#ica, 1(I):1-21, 1977.Google ScholarGoogle Scholar
  3. 3 J. Biswas and J.C. Browne. Simultaneous update of priority structures. In Proceedings of the 1087 International Conference on Parallel Processing, pages t24-131, 1987.Google ScholarGoogle Scholar
  4. 4 B. Bloom. Constructing two-writer atomic registers. In Proceedings of the Sizth A CM Symposium on Principles of Distributed Computing, pages 249-259, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 5 :I.E. Burns and G.L. Peterson. Constructing multireader atomic values from non-atomic values. In Proceedings of the Sizgh A CM Symposium ou Principles of Disgribu#ed Computing, pages 222-231, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6 B. Chor, A. Israeli, and M. Li. On processor coordination using asynchronous hardware. In Proceedings of the Sizth A CM Symposium on Principles of Distributed Computing, pages 86-97, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7 D. Dolev, C. Dwork, and L Stockmeyer. On the minimal synchronism needed for distributed consensus. Journal of the A C1#I, 34(1):77-97, January 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8 C. Dwork, N. Lynch, and L Stoekmeyer. Consensus in the presence of partial synchrony. Journal of the ACM, 35(2):228-323, April 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9 C. Dwork, D. Shmoys, and L. Stockmeyer. Flipping persuasively in constant expected time. In Twengy-Seventh Annual Symposium on Foundations of Computer Science, pages 222-232, October 1986.Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10 C.S. Ellis. Concurrent search and insertion in 2-3 trees. Acga Informatica, 14:63-86, 1980.Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11 M. Fischer, N.A. Lynch, and M.S. Paterson. Impossibility of distributed commit with one faulty process. Journal of the A CM, 32(2), April 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12 R. Ford and J. Calhoun. Cnncurrency control mechanisms and the serializability of concurrent tree algorithms. In 3rd A CM Symposium on PTiucples of Database Systems, pages 51-60, 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13 A. Gottlieb, R. Grishman, C.P. Kruskal, K.P. McAuliffe, L. Rudolph, and M. Suit. The nyu ultracomputer -designing an mimd parallel computer. IEEE Transactions on Computers, C- 32(2):175-189, February 1984.Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14 A. Gottlieb, B.D. Lubachevsky, and L. Rudolph. Basic techniques for the efficient coordination of very large numbers of cooperating sequential processors. A CM Transactions on Programming Languages and Systems, 5(2):164-189, April 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 15 L. Guibas and R. Sedgewick. A dichromatic framework for balanced trees. In 19th A CM Symposium on Foundations of Computer Science, pages 8-21, 1978.Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 16 R. Halstead. Multilisp: A language for concurrent symbolic computation. A CM Trans. on Prog. Languages and Systems, 7(4):501-538, 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. 17 M. Herlihy and 3. Wing. Axioms for concurrent objects. In 14th A CM Symposium on Principles of Programming Languages, pages 13-26, January 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 18 M.P. Herlihy. Impossibility and universality resuits for wait-free synchronization. In Seventh A CM SIGA CT-SIGOPS Symposium on Principles of Distributed Computing, August 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 19 M.P. Herlihy. Wait-free synchronization. Submitted for publication., July 1989.Google ScholarGoogle Scholar
  20. 20 IBM. System/370 principles of operation. Order Number GA22-7000.Google ScholarGoogle Scholar
  21. 21 D.W. Jones. Concurrent operations on priority queues. Communications of the A CM, 32(1):132- 137, January 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 22 L. Lamport. Concurrent reading and writing. Communications of the ACM, 20(11):806-811, November 1977. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 23 L. Lamport. How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Transactions on Computers, C- 28(9):690, September 1979.Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. 24 L. Lamport. Specifying concurrent program modules. A CM Transactions on Programming Languages and Systems, 5(2)'190-222, April 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. 25 L. I,amport. On interprocess communication, parts i and it. Distributed Computing, 1"77-101, 1986.Google ScholarGoogle Scholar
  26. 26 V. Lanin and D. Shasha. Concurrent set manipulation without locking. In Proceedings of the Seventh A CM Symposium on Principles of Database Systems, pages 211-220, March 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. 27 P.L. Lehman and S.B. Yao. Efficient locking for concurrent operations on b-trees. ACM Transactions on Database Systems, 6(4):650-670, December 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. 28 R. Newman-Wolfe. A protocol for wait-free, atomic, multi-reader shared variables, in Proceedings of the Sizth A CM Symposium on Principles of Distributed Computing, pages 232-249, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. 29 C.H. Papadimitriou. The setializability of concurrent database updates. Journal of the A CM, 26(4):631-653, October 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. 30 G.L. Peterson. Concurrent reading while writing. A CM Transactions orr Programming Lartguages and Systems, 5(1):46-55, January 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. 31 G.L. Peterson and J.E. Burns. Concurrent reading while writing ii" the multi-writer case. Technical Report GIT-ICS-86/26, Georgia Institute of Technology, December 1986.Google ScholarGoogle Scholar
  32. 32 S.A. Plotkin. Sticky bits and universality of consensus. In Proceedings of the Eighth A CM Symposium on Principles of Distribuled Computing, pages 159-176, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. 33 Y. Sagiv. Concurrent operations on b-trees with overtaking. In A CM Prir#cples of Database Systems, pages 28-37, January 1985. Google ScholarGoogle Scholar
  34. 34 A.K. Singh, J.H. Anderson, and M.G. Gouda. The elusive atomic register revisited. In Proceedings of the Sizth A CM Symposium on Principles of Distributed Computing, pages 206-221, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. 35 D.D. Sleator and R.E. Tarjan. Self adjusting binary trees. In Proceedings of the 15th A CM Symposium ou Theory of Computing, pages 52-59, 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A methodology for implementing highly concurrent data structures

        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 ACM SIGPLAN Notices
          ACM SIGPLAN Notices  Volume 25, Issue 3
          Mar. 1990
          216 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/99164
          • Editor:
          • David Padua
          Issue’s Table of Contents
          • cover image ACM Conferences
            PPOPP '90: Proceedings of the second ACM SIGPLAN symposium on Principles & practice of parallel programming
            February 1990
            206 pages
            ISBN:0897913507
            DOI:10.1145/99163
            • Chairman:
            • David Padua

          Copyright © 1990 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: 1 February 1990

          Check for updates

          Qualifiers

          • article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader