Advertisement

Logical Concurrency Control from Sequential Proofs

  • Jyotirmoy Deshmukh
  • G. Ramalingam
  • Venkatesh-Prasad Ranganath
  • Kapil Vaswani
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6012)

Abstract

We are interested in identifying and enforcing the isolation requirements of a concurrent program, i.e., concurrency control that ensures that the program meets its specification. The thesis of this paper is that this can be done systematically starting from a sequential proof, i.e., a proof of correctness of the program in the absence of concurrent interleavings. We illustrate our thesis by presenting a solution to the problem of making a sequential library thread-safe for concurrent clients. We consider a sequential library annotated with assertions along with a proof that these assertions hold in a sequential execution. We show how we can use the proof to derive concurrency control that ensures that any execution of the library methods, when invoked by concurrent clients, satisfies the same assertions. We also present an extension to guarantee that the library is linearizable with respect to its sequential specification.

Keywords

Concurrency Control Sequential Execution Concurrent Program Program Point Concurrent Execution 
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.

References

  1. 1.
  2. 2.
    Ball, T., Rajamani, S.K.: Bebop: A symbolic model checker for Boolean programs. In: Havelund, K., Penix, J., Visser, W. (eds.) SPIN 2000. LNCS, vol. 1885, pp. 113–130. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  3. 3.
    Cherem, S., Chilimbi, T., Gulwani, S.: Inferring locks for atomic sections. In: Proc. of PLDI (2008)Google Scholar
  4. 4.
    Deng, X., Dwyer, M.B., Hatcliff, J., Mizuno, M.: Invariant-based specification, synthesis, and verification of synchronization in concurrent programs. In: Proc. of ICSE, pp. 442–452 (2002)Google Scholar
  5. 5.
    Deshmukh, J., Ramalingam, G., Ranganath, V.P., Vaswani, K.: Logical concurrency control from sequential proofs. Tech. Rep. MSR-TR-2009-81, Microsoft Research (2009)Google Scholar
  6. 6.
    Elmas, T., Tasiran, S., Qadeer, S.: A calculus of atomic sections. In: Proc. of POPL (2009)Google Scholar
  7. 7.
    Emmi, M., Fischer, J., Jhala, R., Majumdar, R.: Lock allocation. In: Proc. of POPL (2007)Google Scholar
  8. 8.
    Flanagan, C., Freund, S.N.: Automatic synchronization correction. In: Proc. of SCOOL (2005)Google Scholar
  9. 9.
    Gulavani, B.S., Henzinger, T.A., Kannan, Y., Nori, A.V., Rajamani, S.K.: Synergy: A new algorithm for property checking. In: Proc. of FSE (November 2006)Google Scholar
  10. 10.
    Henzinger, T.A., Jhala, R., Majumdar, R., Sutre, G.: Lazy abstraction. In: Proc. of POPL, pp. 58–70 (2002)Google Scholar
  11. 11.
    Henzinger, T.A., Jhala, R., Majumdar, R., McMillan, K.L.: Abstractions from proofs. In: Proc. of POPL, pp. 232–244 (2004)Google Scholar
  12. 12.
    Herlihy, M.P., Wing, J.M.: Linearizability: a correctness condition for concurrent objects. Proc. of ACM TOPLAS 12(3), 463–492 (1990)CrossRefGoogle Scholar
  13. 13.
    Hicks, M., Foster, J.S., Pratikakis, P.: Lock inference for atomic sections. In: First Workshop on Languages, Compilers, and Hardware Support for Transactional Computing (2006)Google Scholar
  14. 14.
    Janjua, M.U., Mycroft, A.: Automatic correcting transformations for safety property violations. In: Proc. of Thread Verification, pp. 111–116 (2006)Google Scholar
  15. 15.
    McCloskey, B., Zhou, F., Gay, D., Brewer, E.A.: Autolocker: Synchronization inference for atomic sections. In: Proc. of POPL (2006)Google Scholar
  16. 16.
    O’Hearn, P.W.: Resources, concurrency, and local reasoning. Theor. Comput. Sci. 375(1-3), 271–307 (2007)MATHCrossRefMathSciNetGoogle Scholar
  17. 17.
    Owicki, S., Gries, D.: Verifying properties of parallel programs: An axiomatic approach. In: Proc. of CACM (1976)Google Scholar
  18. 18.
    Solar-Lezama, A., Jones, C.G., Bodik, R.: Sketching concurrent data structures. In: Proc. of PLDI, pp. 136–148 (2008)Google Scholar
  19. 19.
    Vaziri, M., Tip, F., Dolby, J.: Associating synchronization constraints with data in an object-oriented language. In: Proc. of POPL, pp. 334–345 (2006)Google Scholar
  20. 20.
    Vechev, M., Yahav, E.: Deriving linearizable fine-grained concurrent objects. In: Proc. of PLDI, pp. 125–135 (2008)Google Scholar
  21. 21.
    Vechev, M., Yahav, E., Yorsh, G.: Inferring synchronization under limited observability. In: Kowalewski, S., Philippou, A. (eds.) TACAS 2009. LNCS, vol. 5505, pp. 139–154. Springer, Heidelberg (2009)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Jyotirmoy Deshmukh
    • 1
  • G. Ramalingam
    • 2
  • Venkatesh-Prasad Ranganath
    • 2
  • Kapil Vaswani
    • 2
  1. 1.Univeristy of Texas at Austin 
  2. 2.Microsoft ResearchIndia

Personalised recommendations