Multi-word Atomic Read/Write Registers on Multiprocessor Systems

  • Andreas Larsson
  • Anders Gidenstam
  • Phuong H. Ha
  • Marina Papatriantafilou
  • Philippas Tsigas
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3221)


Modern multiprocessor systems offer advanced synchronization primitives, built in hardware, to support the development of efficient parallel algorithms. In this paper we develop a simple and efficient algorithm for atomic registers (variables) of arbitrary length. The simplicity and better complexity of the algorithm is achieved via the utilization of two such common synchronization primitives. In this paper we also evaluate the performance of our algorithm and the performance of a practical previously know algorithm that is based only on read and write primitives. The evaluation is performed on 3 well-known, parallel architectures. This evaluation clearly shows that both algorithms are practical and that as the size of the register increases our algorithm performs better, accordingly to its complexity behavior.


Mutual Exclusion Multiprocessor System Read Operation High Contention Shared Object 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Silberschatz, A., Galvin, P.B., Gagne, G.: Operating Systems Concepts. Addison-Wesley, Reading (2001)Google Scholar
  2. 2.
    Sha, L., Rajkumar, R., Lojoczky, J.: Priority inheritence protocols: An approach to real-time syncronization. IEEE Transactions on Computers 39, 1175–1185 (1990)CrossRefGoogle Scholar
  3. 3.
    Tsigas, P., Zhang, Y.: Evaluating the performance of non-blocking synchronisation on shared-memory multiprocessors. In: Proc. of the ACM SIGMETRICS 2001/Performance 2001, pp. 320–321. ACM press, New York (2001)Google Scholar
  4. 4.
    Tsigas, P., Zhang, Y.: Integrating non-blocking synchronisation in parallel applications: Performance advantages and methodologies. In: Proc. of the 3rd ACM Workshop on Software and Performance (WOSP 2002), pp. 55–67. ACM press, New York (2002)CrossRefGoogle Scholar
  5. 5.
    Sundell, H., Tsigas, P.: NOBLE: A non-blocking inter-process communication library. In: Proc. of the 6th Workshop on Languages, Compilers and Run-time Systems for Scalable Computers. LNCS, Springer, Heidelberg (2002)Google Scholar
  6. 6.
    Bloom, B.: Constructing two-writer atomic registers. IEEE Transactions on Computers 37, 1506–1514 (1988)zbMATHCrossRefMathSciNetGoogle Scholar
  7. 7.
    Burns, J.E., Peterson, G.L.: Constructing multi-reader atomic values from nonatomic values. In: Proc. of the 6th Annual ACM Symposium on Principles of Distributed Computing, pp. 222–231. ACM Press, New York (1987)CrossRefGoogle Scholar
  8. 8.
    Haldar, S., Vidyasankar, K.: Constructing 1-writer multireader multivalued atomic variable from regular variables. Journal of the ACM 42, 186–203 (1995)zbMATHCrossRefGoogle Scholar
  9. 9.
    Haldar, S., Vidyasankar, K.: Simple extensions of 1-writer atomic variable constructions to multiwriter ones. Acta Informatica 33, 177–202 (1996)CrossRefGoogle Scholar
  10. 10.
    Israeli, A., Shaham, A.: Optimal multi-writer multi-reader atomic register. In: Proc. of the 11th Annual Symposium on Principles of Distributed Computing, pp. 71–82. ACM Press, New York (1992)CrossRefGoogle Scholar
  11. 11.
    Kirousis, L.M., Kranakis, E., Vitányi, P.M.B.: Atomic multireader register. In: Distributed Algorithms. In: van Leeuwen, J. (ed.) WDAG 1987. LNCS, vol. 312, pp. 278–296. Springer, Heidelberg (1988)CrossRefGoogle Scholar
  12. 12.
    Lamport, L.: On interprocess communication. Distributed Computing 1, 77–101 (1986)zbMATHCrossRefGoogle Scholar
  13. 13.
    Li, M., Vitányi, P.M.B.: Optimality of wait-free atomic multiwriter variables. Information Processing Letters 43, 107–112 (1992)zbMATHCrossRefMathSciNetGoogle Scholar
  14. 14.
    Li, M., Tromp, J., Vitányi, P.M.B.: How to share concurrent wait-free variables. Journal of the ACM 43, 723–746 (1996)zbMATHCrossRefMathSciNetGoogle Scholar
  15. 15.
    Peterson, G.L., Burns, J.E.: Concurrent reading while writing II: The multi-writer case. In: 28th Annual Symposium on Foundations of Computer Science, pp. 383–392. IEEE, Los Alamitos (1987)CrossRefGoogle Scholar
  16. 16.
    Singh, A.K., Anderson, J.H., Gouda, M.G.: The elusive atomic register. Journal of the ACM 41, 311–339 (1994)zbMATHCrossRefGoogle Scholar
  17. 17.
    Newman-Wolfe, R.: A protocol for wait-free, atomic, multi-reader shared variables. In: Proc. of the 6th Annual ACM Symposium on Principles of Distributed Computing, pp. 232–248. ACM Press, New York (1987)CrossRefGoogle Scholar
  18. 18.
    Vitányi, P.M.B., Awerbuch, B.: Atomic shared register access by asynchronous hardware. In: 27th Annual Symposium on Foundations of Computer Science, pp. 233–243. IEEE, Los Alamitos (1986)Google Scholar
  19. 19.
    Simpson, H.R.: Four-slot fully asynchronous communication mechanism. In: IEE Proc., Computers and Digital Techniques, vol. 137, pp. 17–30 (1990)Google Scholar
  20. 20.
    Chen, J., Burns, A.: A fully asynchronous reader/writer mechanism for multiprocessor real-time systems. Technical Report YCS-288, Department of Computer Science, University of York (1997)Google Scholar
  21. 21.
    Kopetz, H., Reisinge, J.: The non-blocking write protocol NBW: A solution to a real-time synchronisation problem. In: Proc. of the Real-Time Systems Symposium, pp. 131–137. IEEE Computer Society Press, Los Alamitos (1993)CrossRefGoogle Scholar
  22. 22.
    Herlihy, M.: Wait-free synchronization. ACM Transaction on Programming and Systems 11, 124–149 (1991)CrossRefGoogle Scholar
  23. 23.
    Peterson, G.L.: Concurrent reading while writing. ACM Transactions on Programming Languages and Systems 5, 46–55 (1983)zbMATHCrossRefGoogle Scholar
  24. 24.
    Herlihy, M.: A methodology for implementing highly concurrent data objects. ACM Transactions on Programming Languages and Systems 15, 745–770 (1993)CrossRefGoogle Scholar
  25. 25.
    Weaver, D.L., Germond, T.: The SPARC Architecture Manual. Pretice Hall (2000) Version 9Google Scholar
  26. 26.
    Cortesi, D.: Topics in IRIX Programming. Silicon Graphics, Inc. (2004) (doc #:007-2478-009)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Andreas Larsson
    • 1
  • Anders Gidenstam
    • 1
  • Phuong H. Ha
    • 1
  • Marina Papatriantafilou
    • 1
  • Philippas Tsigas
    • 1
  1. 1.Department of Comp. ScienceChalmers University of TechnologyGöteborgSweden

Personalised recommendations