Inferring Synchronization under Limited Observability

  • Martin Vechev
  • Eran Yahav
  • Greta Yorsh
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5505)


This paper addresses the problem of automatically inferring synchronization for concurrent programs. Given a program and a specification, we infer synchronization that avoids all interleavings violating the specification, but permits as many valid interleavings as possible. We let the user specify an upper bound on the cost of synchronization, which may limit the observability — what observations on program state can be made by the synchronization code. We present an algorithm that infers, under certain conditions, the maximally permissive synchronization for a given cost. We implemented a prototype of our approach and applied it to infer synchronization in a number of small programs.


Transition System Stick State Limited Observability Synchronization Code Valid Program 
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.


  1. 1.
    Attie, P.C., Emerson, E.A.: Synthesis of concurrent systems for an atomic read/atomic write model of computation. In: PODC 1996, pp. 111–120. ACM Press, New York (1996)Google Scholar
  2. 2.
    Clarke, E.M., Emerson, E.A.: Design and synthesis of synchronization skeletons using branching-time temporal logic. In: Logic of Programs, Workshop, pp. 52–71 (1982)Google Scholar
  3. 3.
    Clarke Jr., E.M., Grumberg, O., Peled, D.A.: Model Checking. The MIT Press, Cambridge (1999)Google Scholar
  4. 4.
    Dams, D.: Abstract Interpretation and Partition Refinement for Model Checking. PhD thesis, Eindhoven University of Technology, The Netherlands (December 1996)Google Scholar
  5. 5.
    Hansen, B.: Edison - a multiprocessor language. Software - Practice and Experience 11(4), 325–361 (1981)CrossRefzbMATHGoogle Scholar
  6. 6.
    Harris, T., Fraser, K.: Language support for lightweight transactions. In: OOPSLA 2003, pp. 388–402. ACM Press, New York (2003)Google Scholar
  7. 7.
    Hoare, C.A.R.: Towards a theory of parallel programming. In: The origin of concurrent programming: from semaphores to remote procedure calls, pp. 231–244 (2002)Google Scholar
  8. 8.
    Holzmann, G.J.: The Spin Model Checker, Primer and Reference Manual. Addison-Wesley, Reading (2003)Google Scholar
  9. 9.
    Jobstmann, B., Griesmayer, A., Bloem, R.: Program repair as a game. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 226–238. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  10. 10.
    Joshi, R., Misra, J.: Toward a theory of maximally concurrent programs (shortened version). In: PODC 2000, pp. 319–328. ACM Press, New York (2000)Google Scholar
  11. 11.
    Manna, Z., Wolper, P.: Synthesis of communicating processes from temporal logic specifications. ACM Trans. Program. Lang. Syst. 6(1), 68–93 (1984)CrossRefzbMATHGoogle Scholar
  12. 12.
    Pnueli, A., Rosner, R.: On the synthesis of a reactive module. In: POPL 1989, pp. 179–190. ACM Press, New York (1989)Google Scholar
  13. 13.
    Ramadge, P.J., Wonham, W.M.: Supervisory control of a class of discrete event processes. SIAM J. Control Optim. 25(1), 206–230 (1987)MathSciNetCrossRefzbMATHGoogle Scholar
  14. 14.
    Saraswat, V.A., Sarkar, V., von Praun, C.: X10: concurrent programming for modern architectures. In: PPoPP 2007, pp. 271–271. ACM Press, New York (2007)Google Scholar
  15. 15.
    Sutter, H., Larus, J.: Software and the concurrency revolution. Queue 3(7), 54–62 (2005)CrossRefGoogle Scholar
  16. 16.
    Vechev, M., Yahav, E., Yorsh, G.: Inferring synchronization under limited observability. Technical report, IBM (2008),

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Martin Vechev
    • 1
  • Eran Yahav
    • 1
  • Greta Yorsh
    • 1
  1. 1.IBM T.J. Watson Research CenterUSA

Personalised recommendations