Skip to main content

A Scalable and Oblivious Atomicity Assertion

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 5201))

Abstract

This paper presents SOAR: the first oblivious atomicity assertion with polynomial complexity. SOAR enables to check atomicity of a single-writer multi-reader register implementation. The basic idea underlying the low overhead induced by SOAR lies in greedily checking, in a backward manner, specific points of an execution where register operations could be linearized, rather than exploring all possible precedence relations among these.

We illustrate the use of SOAR by implementing it in +CAL. The performance of the resulting automatic verification outperforms comparable approaches by more than an order of magnitude already in executions with only 6 read/write operations. This difference increases to 3-4 orders of magnitude in the “negative” scenario, i.e., when checking some non-atomic execution, with only 5 operations. For example, checking atomicity of every possible execution of a single-writer single-reader (SWSR) register with at most 2 write and 3 read operations with the state of the art oblivious assertion takes more than 58 hours to complete, whereas SOAR takes just 9 seconds.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Abadi, M., Lamport, L.: The existence of refinement mappings. Theor. Comput. Sci. 82(2), 253–284 (1991)

    Article  MATH  MathSciNet  Google Scholar 

  2. Abraham, I., Chockler, G.V., Keidar, I., Malkhi, D.: Byzantine disk paxos: optimal resilience with Byzantine shared memory. Distributed Computing 18(5), 387–408 (2006)

    Article  Google Scholar 

  3. Afek, Y., Attiya, H., Dolev, D., Gafni, E., Merritt, M., Shavit, N.: Atomic snapshots of shared memory. J. ACM 40(4), 873–890 (1993)

    Article  MATH  Google Scholar 

  4. Alur, R., McMillan, K., Peled, D.: Model-checking of correctness conditions for concurrent objects. Inf. Comput. 160(1-2), 167–188 (2000)

    Article  MATH  MathSciNet  Google Scholar 

  5. Aspnes, J., Herlihy, M.: Fast randomized consensus using shared memory. Journal of Algorithms 11(3), 441–461 (1990)

    Article  MATH  MathSciNet  Google Scholar 

  6. Attiya, H., Welch, J.: Distributed Computing. Fundamentals, Simulations, and Advanced Topics. McGraw-Hill, New York (1998)

    Google Scholar 

  7. Chockler, G., Lynch, N., Mitra, S., Tauber, J.: Proving atomicity: An assertional approach. In: Proceedings of the 19th International Symposium on Distributed Computing, pp. 152–168 (September 2005)

    Google Scholar 

  8. Doherty, S., Groves, L., Luchangco, V., Moir, M.: Formal verification of a practical lock-free queue algorithm. In: de Frutos-Escrig, D., Núñez, M. (eds.) FORTE 2004. LNCS, vol. 3235, pp. 97–114. Springer, Heidelberg (2004)

    Google Scholar 

  9. Flanagan, C., Freund, S.N.: Atomizer: a dynamic atomicity checker for multithreaded programs. In: POPL 2004: Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pp. 256–267. ACM, New York (2004)

    Chapter  Google Scholar 

  10. Flanagan, C., Qadeer, S.: A type and effect system for atomicity. In: PLDI 2003: Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation, pp. 338–349. ACM, New York (2003)

    Chapter  Google Scholar 

  11. Flanagan, C., Qadeer, S.: Atomicity for reliable concurrent software. In: A tutorial at the ACM SIGPLAN 2005 conference on Programming language design and implementation (PLDI 2005) (2005)

    Google Scholar 

  12. Gafni, E., Lamport, L.: Disk paxos. Distributed Computing 16(1), 1–20 (2003)

    Article  Google Scholar 

  13. Guerraoui, R., Henzinger, T., Jobstmann, B., Singh, V.: Model checking transactional memories. In: PLDI 2008: Proceedings of the ACM SIGPLAN 2008 conference on Programming language design and implementation (2008)

    Google Scholar 

  14. Guerraoui, R., Vukolić, M.: A scalable and oblivious atomicity assertion. Technical Report LPD-REPORT-2008-011, EPFL, School of Computer and Communication Sciences, Lausanne, Switzerland

    Google Scholar 

  15. Herlihy, M., Wing, J.: Linearizability: a correctness condition for concurrent objects. ACM Transactions on Programming Languages and Systems 12(3), 463–492 (1990)

    Article  Google Scholar 

  16. Hesselink, W.H.: An assertional criterion for atomicity. Acta Informatica 38(5), 343–366 (2002)

    Article  MATH  MathSciNet  Google Scholar 

  17. Hesselink, W.H.: A criterion for atomicity revisited. Acta Informatica 44(2), 123–151 (2007)

    Article  MATH  MathSciNet  Google Scholar 

  18. Lamport, L.: Time, clocks and the ordering of events in a distributed system. Communications of the ACM 21(7), 558–565 (1978)

    Article  MATH  Google Scholar 

  19. Lamport, L.: On interprocess communication. Distributed computing 1(1), 77–101 (1986)

    Article  MATH  MathSciNet  Google Scholar 

  20. Lamport, L.: On interprocess communication. part i: Basic formalism. Distributed Computing 1(2), 77–85 (1986)

    Article  MATH  Google Scholar 

  21. Lamport, L.: On interprocess communication. part ii: Algorithms. Distributed Computing 1(2), 86–101 (1986)

    Article  MATH  Google Scholar 

  22. Lamport, L.: Specifying Systems, The TLA+ Language and Tools for Hardware and Software Engineers. Addison-Wesley, Reading (2002)

    Google Scholar 

  23. Lamport, L.: The +CAL algorithm language. In: NCA 2006: Proceedings of the Fifth IEEE International Symposium on Network Computing and Applications. IEEE Computer Society, Los Alamitos (2006)

    Google Scholar 

  24. Lamport, L.: Checking a multithreaded algorithm with +CAL. In: Proceedings of the 20th International Symposium on Distributed Computing, pp. 151–163 (September 2006)

    Google Scholar 

  25. Lynch, N.: Distributed Algorithms. Morgan Kaufmann, San Mateo (1996)

    MATH  Google Scholar 

  26. Lynch, N.A., Tuttle, M.R.: An introduction to input/output automata. CWI Quarterly 2(3), 219–246 (1989)

    MATH  MathSciNet  Google Scholar 

  27. Tromp, J.: How to construct an atomic variable (extended abstract). In: Proceedings of the 3rd International Workshop on Distributed Algorithms, London, UK, pp. 292–302. Springer, Heidelberg (1989)

    Google Scholar 

  28. Wang, L., Stoller, S.D.: Static analysis of atomicity for programs with non-blocking synchronization. In: PPoPP 2005: Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming, pp. 61–71. ACM, New York (2005)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Franck van Breugel Marsha Chechik

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Guerraoui, R., Vukolić, M. (2008). A Scalable and Oblivious Atomicity Assertion. In: van Breugel, F., Chechik, M. (eds) CONCUR 2008 - Concurrency Theory. CONCUR 2008. Lecture Notes in Computer Science, vol 5201. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-85361-9_8

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-85361-9_8

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-85360-2

  • Online ISBN: 978-3-540-85361-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics