Skip to main content

Specification and Verification of Synchronization with Condition Variables

  • Conference paper
  • First Online:

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 694))

Abstract

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

Marieke Huisman — Supported by ERC grant 258405 for the VerCors project.

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 EPUB and 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

Notes

  1. 1.

    The choice of formalism has been mainly based on the simplicity of CPNs as a general model of concurrency, rather than on the existing support for efficient model checking. For the latter, model checking tools exploiting parametricity or symmetries in the models may prove more efficient in practice.

References

  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

    Chapter  Google Scholar 

  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

    Chapter  Google Scholar 

  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)

    Article  Google Scholar 

  4. de Carvalho Gomes, P.: SyncTAsk VErifier (2015). http://www.csc.kth.se/~pedrodcg/stave

  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. Hoare, C.A.R.: Monitors: An operating system structuring concept. Commun. ACM 17(10), 549–557 (1974)

    Article  MATH  Google Scholar 

  7. Jensen, K., Kristensen, L.M.: Coloured Petri Nets: Modelling and Validation of Concurrent Systems, 1st edn. Springer, Heidelberg (2009)

    Book  MATH  Google Scholar 

  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)

    Article  Google Scholar 

  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

    Chapter  Google Scholar 

  10. Kavi, K., Moshtaghi, A., Chen, D.J.: Modeling multithreaded applications using petri nets. Int. J. Parallel Prog. 30(5), 353–371 (2002)

    Article  MATH  Google Scholar 

  11. Lamport, L.: How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Trans. Comput. 28(9), 690–691 (1979)

    Article  MATH  Google Scholar 

  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)

    Chapter  Google Scholar 

  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

    Chapter  Google Scholar 

  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

    Chapter  Google Scholar 

  15. Milner, R.: Communicating and Mobile Systems: the \(\pi \)-Calculus, pp. 52–53. Cambridge University Press, New York (1999). Chap. 6

    MATH  Google Scholar 

  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

    Chapter  Google Scholar 

  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

    Chapter  Google Scholar 

  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

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Pedro de Carvalho Gomes .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2017 Springer International Publishing AG

About this paper

Cite this paper

de Carvalho Gomes, P., Gurov, D., Huisman, M. (2017). Specification and Verification of Synchronization with Condition Variables. In: Artho, C., Ölveczky, P. (eds) Formal Techniques for Safety-Critical Systems. FTSCS 2016. Communications in Computer and Information Science, vol 694. Springer, Cham. https://doi.org/10.1007/978-3-319-53946-1_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-53946-1_1

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-53945-4

  • Online ISBN: 978-3-319-53946-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics