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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Abadi, M., Lamport, L.: The existence of refinement mappings. Theor. Comput. Sci. 82(2), 253–284 (1991)
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)
Afek, Y., Attiya, H., Dolev, D., Gafni, E., Merritt, M., Shavit, N.: Atomic snapshots of shared memory. J. ACM 40(4), 873–890 (1993)
Alur, R., McMillan, K., Peled, D.: Model-checking of correctness conditions for concurrent objects. Inf. Comput. 160(1-2), 167–188 (2000)
Aspnes, J., Herlihy, M.: Fast randomized consensus using shared memory. Journal of Algorithms 11(3), 441–461 (1990)
Attiya, H., Welch, J.: Distributed Computing. Fundamentals, Simulations, and Advanced Topics. McGraw-Hill, New York (1998)
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)
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)
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)
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)
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)
Gafni, E., Lamport, L.: Disk paxos. Distributed Computing 16(1), 1–20 (2003)
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)
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
Herlihy, M., Wing, J.: Linearizability: a correctness condition for concurrent objects. ACM Transactions on Programming Languages and Systems 12(3), 463–492 (1990)
Hesselink, W.H.: An assertional criterion for atomicity. Acta Informatica 38(5), 343–366 (2002)
Hesselink, W.H.: A criterion for atomicity revisited. Acta Informatica 44(2), 123–151 (2007)
Lamport, L.: Time, clocks and the ordering of events in a distributed system. Communications of the ACM 21(7), 558–565 (1978)
Lamport, L.: On interprocess communication. Distributed computing 1(1), 77–101 (1986)
Lamport, L.: On interprocess communication. part i: Basic formalism. Distributed Computing 1(2), 77–85 (1986)
Lamport, L.: On interprocess communication. part ii: Algorithms. Distributed Computing 1(2), 86–101 (1986)
Lamport, L.: Specifying Systems, The TLA+ Language and Tools for Hardware and Software Engineers. Addison-Wesley, Reading (2002)
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)
Lamport, L.: Checking a multithreaded algorithm with +CAL. In: Proceedings of the 20th International Symposium on Distributed Computing, pp. 151–163 (September 2006)
Lynch, N.: Distributed Algorithms. Morgan Kaufmann, San Mateo (1996)
Lynch, N.A., Tuttle, M.R.: An introduction to input/output automata. CWI Quarterly 2(3), 219–246 (1989)
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)
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)
Author information
Authors and Affiliations
Editor information
Rights 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)