Advertisement

Pseudo read-modify-write operations: Bounded wait-free implementations

Extended abstract
  • James H. Anderson
  • Bojan Grošelj
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 579)

Abstract

We define a class of operations called pseudo read- modify- write (PRMW) operations, and show that nontrivial shared data objects with such operations can be implemented in a bounded, wait-free manner from atomic registers. A PRMW operation is similar to a “true” read-modify-write (RMW) operation in that it modifies sthe value of a shared variable based upon the original value of that variable. However, unlike an RMW operation, a PRMW operation does not return the value of the variable that it modifies. We consider a class of shared data objects that can either be read, written, or modified by a commutative PRMW operation, and show that any object in this class can be implemented without waiting from atomic registers. The implementations that we present are polynomial in both space and time and thus are an improvement over previously published ones, all of which have unbounded space complexity.

Keywords

Auxiliary Variable Shared Variable History Variable Read Operation Consensus Problem 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [1]
    M. Abadi and L. Lamport, “The Existence of Refinement Mappings,” Theoretical Computer Science, Vol. 82, No. 2, May 1990, pp. 253–284.Google Scholar
  2. [2]
    Y. Afek, H. Attiya, D. Dolev, E. Gafni, M. Merritt, and N. Shavit, “Atomic Snapshots of Shared Memory,” Proceedings of the Ninth Annual Symposium on Principles of Distributed Computing, 1990, pp. 1–14.Google Scholar
  3. [3]
    J. Anderson, “Multiple-Writer Composite Registers,” Technical Report TR.89.26, Department of Computer Sciences, University of Texas at Austin, September 1989.Google Scholar
  4. [4]
    J. Anderson, “Composite Registers,” Proceedings of the Ninth Annual Symposium on Principles of Distributed Computing, 1990, pp. 15–30.Google Scholar
  5. [5]
    J. Anderson and M. Gouda, “The Virtue of Patience: Concurrent Programming With and Without Waiting,” Technical Report TR.90.23, Department of Computer Sciences, University of Texas at Austin, July 1990.Google Scholar
  6. [6]
    J. Anderson and M. Gouda, “A Criterion for Atomicity,” Formal Aspects of Computing: The International Journal of Formal Methods, scheduled to appear in 1992.Google Scholar
  7. [7]
    J. Aspnes and M. Herlihy, “Wait-Free Data Structures in the Asynchronous PRAM Model,” Proceedings of the Second Annual ACM Symposium on Parallel Architectures and Algorithms, July, 1990.Google Scholar
  8. [8]
    B. Awerbuch, L. Kirousis, E. Kranakis, P. Vitanyi, “On Proving Register Atomicity,” Report CS-R8707, Centre for Mathematics and Computer Science, Amsterdam, 1987.Google Scholar
  9. [9]
    B. Bloom, “Constructing Two-Writer Atomic Registers,” IEEE Transactions on Computers, Vol. 37, No. 12, December 1988, pp. 1506–1514. Also appeared in Proceedings of the Sixth Annual Symposium on Principles of Distributed Computing, 1987, pp. 249–259.Google Scholar
  10. [10]
    J. Burns and G. Peterson, “Constructing Multi-Reader Atomic Values from Non-Atomic Values,” Proceedings of the Sixth Annual Symposium on Principles of Distributed Computing, 1987, pp. 222–231.Google Scholar
  11. [11]
    K. Chandy and J. Misra, Parallel Program Design: A Foundation, Addison Wesley, 1988.Google Scholar
  12. [12]
    M. Clint, “Program Proving: Coroutines,” Acta Informatica, Vol. 2, p. 50–63, 1973.Google Scholar
  13. [13]
    P. Courtois, F. Heymans, and D. Parnas, “Concurrent Control with Readers and Writers,” Communications of the ACM, Vol. 14, No. 10, October 1971, pp. 667–668.Google Scholar
  14. [14]
    M. Herlihy, “Impossibility and Universality Results for Wait-Free Synchronization,” Proceedings of the Seventh Annual Symposium on Principles of Distributed Computing, 1988, pp. 276–290.Google Scholar
  15. [15]
    M. Herlihy and J. Wing, “Linearizability: A Correctness Condition for Concurrent Objects,” ACM Transactions on Programming Languages and Systems, Vol. 12, No. 3, 1990, pp. 463–492.Google Scholar
  16. [16]
    A. Israeli and M. Li, “Bounded time-stamps,” Proceedings of the 28th IEEE Symposium on Foundations of Computer Science, 1987, pp. 371–382.Google Scholar
  17. [17]
    L. Kirousis, E. Kranakis, and P. Vitanyi, “Atomic Multireader Register,” Proceedings of the Second International Workshop on Distributed Computing, Springer Verlag Lecture Notes in Computer Science 312, 1987, pp. 278–296.Google Scholar
  18. [18]
    C. Kruskal, L. Rudolph, M. Snir, “Efficient Synchronization on Multiprocessors with Shared Memory,” ACM Transactions on Programming Languages and Systems, Vol. 10, No. 4, October 1988, pp. 579–601.Google Scholar
  19. [19]
    S. Lam and A. Shankar, “Specifying Modules to Satisfy Interfaces: A State Transition System Approach,” Technical Report CS-TR-2082.3, University of Maryland at College Park, 1988.Google Scholar
  20. [20]
    L. Lamport, “On Interprocess Communication, Parts I and II,” Distributed Computing, Vol. 1, pp. 77–101, 1986.Google Scholar
  21. [21]
    M. Li, J. Tromp, and P. Vitanyi, “How to Construct Wait-Free Variables,” unpublished manuscript, Centrum voor Wiskunde en Informatica, Amsterdam, The Netherlands, 1989.Google Scholar
  22. [22]
    R. Newman-Wolfe, “A Protocol for Wait-Free, Atomic, Multi-Reader Shared Variables, Proceedings of ike Sixth Annual Symposium on Principles of Distributed Computing, 1987, pp. 232–248.Google Scholar
  23. [23]
    S. Owicki and D. Gries, “An Axiomatic Proof Technique for Parallel Programs I,” Acta Informatica, Vol. 6, pp. 319–340, 1976.Google Scholar
  24. [24]
    G. Peterson, “Concurrent Reading While Writing,” ACM Transactions on Programming Languages and Systems, Vol. 5, 1983, pp. 46–55.Google Scholar
  25. [25]
    G. Peterson and J. Burns, “Concurrent Reading While Writing II: The Multi-Writer Case,” Proceedings of the 28th Annual Symposium on Foundations of Computer Science, 1987.Google Scholar
  26. [26]
    A. Singh, J. Anderson, and M. Gouda, “The Elusive Atomic Register, Revisited,” Proceedings of the Sixth Annual Symposium on Principles of Distributed Computing, 1987, pp. 206–221.Google Scholar
  27. [27]
    J. Tromp, “How to Construct an Atomic Variable,” unpublished manuscript, Centrum voor Wiskunde en Informatica, Amsterdam, The Netherlands, 1989.Google Scholar
  28. [28]
    P. Vitanyi and B. Awerbuch, “Atomic Shared Register Access by Asynchronous Hardware,” Proceedings of the 27th IEEE Symposium on the Foundations of Computer Science, 1986, pp. 233–243.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1992

Authors and Affiliations

  • James H. Anderson
    • 1
  • Bojan Grošelj
    • 1
  1. 1.Department of Computer ScienceThe University of Maryland at College ParkCollege Park

Personalised recommendations