Specification and Verification of Synchronization with Condition Variables

  • Pedro de Carvalho Gomes
  • Dilian Gurov
  • Marieke Huisman
Conference paper
Part of the Communications in Computer and Information Science book series (CCIS, volume 694)


In this paper we propose a technique to specify and verify the correct synchronization of concurrent programs with condition variables.


  1. 1.
    Aalst, W.M.P., Stahl, C., Westergaard, M.: Strategies for modeling complex processes using colored petri nets. In: Jensen, K., Aalst, W.M.P., Balbo, G., Koutny, M., Wolf, K. (eds.) Transactions on Petri Nets and Other Models of Concurrency VII. LNCS, vol. 7480, pp. 6–55. Springer, Heidelberg (2013). doi:10.1007/978-3-642-38143-0_2 CrossRefGoogle Scholar
  2. 2.
    Cenciarelli, P., Knapp, A., Reus, B., Wirsing, M.: An event-based structural operational semantics of multi-threaded java. In: Alves-Foss, J. (ed.) Formal Syntax and Semantics of Java. LNCS, vol. 1523, pp. 157–200. Springer, Heidelberg (1999). doi:10.1007/3-540-48737-9_5 CrossRefGoogle Scholar
  3. 3.
    Dingle, N.J., Knottenbelt, W.J., Suto, T.: PIPE2: A tool for the performance evaluation of generalised stochastic Petri nets. SIGMETRICS 36(4), 34–39 (2009)CrossRefGoogle Scholar
  4. 4.
    de Carvalho Gomes, P.: SyncTAsk VErifier (2015). http://www.csc.kth.se/~pedrodcg/stave
  5. 5.
    de Carvalho Gomes, P., Gurov, D., Huisman, M.: Algorithmic verification of multithreaded programs with condition variables. Technical report, KTH Royal Institute of Technology, October 2015. http://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-176006
  6. 6.
    Hoare, C.A.R.: Monitors: An operating system structuring concept. Commun. ACM 17(10), 549–557 (1974)CrossRefMATHGoogle Scholar
  7. 7.
    Jensen, K., Kristensen, L.M.: Coloured Petri Nets: Modelling and Validation of Concurrent Systems, 1st edn. Springer, Heidelberg (2009)CrossRefMATHGoogle Scholar
  8. 8.
    Jensen, K., Kristensen, L., Wells, L.: Coloured petri nets and CPN tools for modelling and validation of concurrent systems. Int. J. Softw. Tools Technol. Transfer 9(3–4), 213–254 (2007)CrossRefGoogle Scholar
  9. 9.
    Kaiser, C., Pradat-Peyre, J.-F.: Weak fairness semantic drawbacks in java multithreading. In: Kordon, F., Kermarrec, Y. (eds.) Ada-Europe 2009. LNCS, vol. 5570, pp. 90–104. Springer, Heidelberg (2009). doi:10.1007/978-3-642-01924-1_7 CrossRefGoogle Scholar
  10. 10.
    Kavi, K., Moshtaghi, A., Chen, D.J.: Modeling multithreaded applications using petri nets. Int. J. Parallel Prog. 30(5), 353–371 (2002)CrossRefMATHGoogle Scholar
  11. 11.
    Lamport, L.: How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Trans. Comput. 28(9), 690–691 (1979)CrossRefMATHGoogle Scholar
  12. 12.
    Leavens, G., Baker, A., Ruby, C.: JML: A notation for detailed design. In: Kilov, H., Rumpe, B., Simmonds, I. (eds.) Behavioral Specifications of Businesses and Systems. The Springer International Series in Engineering and Computer Science, vol. 523, pp. 175–188. Springer, US (1999)CrossRefGoogle Scholar
  13. 13.
    Leino, K.R.M., Müller, P.: A basis for verifying multi-threaded programs. In: Castagna, G. (ed.) ESOP 2009. LNCS, vol. 5502, pp. 378–393. Springer, Heidelberg (2009). doi:10.1007/978-3-642-00590-9_27 CrossRefGoogle Scholar
  14. 14.
    Leino, K.R.M., Müller, P., Smans, J.: Deadlock-free channels and locks. In: Gordon, A.D. (ed.) ESOP 2010. LNCS, vol. 6012, pp. 407–426. Springer, Heidelberg (2010). doi:10.1007/978-3-642-11957-6_22 CrossRefGoogle Scholar
  15. 15.
    Milner, R.: Communicating and Mobile Systems: the \(\pi \)-Calculus, pp. 52–53. Cambridge University Press, New York (1999). Chap. 6MATHGoogle Scholar
  16. 16.
    Popeea, C., Rybalchenko, A.: Compositional termination proofs for multi-threaded programs. In: Flanagan, C., König, B. (eds.) TACAS 2012. LNCS, vol. 7214, pp. 237–251. Springer, Heidelberg (2012). doi:10.1007/978-3-642-28756-5_17 CrossRefGoogle Scholar
  17. 17.
    Wang, C., Hoang, K.: Precisely deciding control state reachability in concurrent traces with limited observability. In: McMillan, K.L., Rival, X. (eds.) VMCAI 2014. LNCS, vol. 8318, pp. 376–394. Springer, Heidelberg (2014). doi:10.1007/978-3-642-54013-4_21 CrossRefGoogle Scholar
  18. 18.
    Westergaard, M.: Verifying parallel algorithms and programs using coloured petri nets. In: Jensen, K., Aalst, W.M., Ajmone Marsan, M., Franceschinis, G., Kleijn, J., Kristensen, L.M. (eds.) Transactions on Petri Nets and Other Models of Concurrency VI. LNCS, vol. 7400, pp. 146–168. Springer, Heidelberg (2012). doi:10.1007/978-3-642-35179-2_7 CrossRefGoogle Scholar

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  • Pedro de Carvalho Gomes
    • 1
  • Dilian Gurov
    • 1
  • Marieke Huisman
    • 2
  1. 1.KTH Royal Institute of TechnologyStockholmSweden
  2. 2.University of TwenteEnschedeThe Netherlands

Personalised recommendations