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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsNotes
- 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
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
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
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)
de Carvalho Gomes, P.: SyncTAsk VErifier (2015). http://www.csc.kth.se/~pedrodcg/stave
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
Hoare, C.A.R.: Monitors: An operating system structuring concept. Commun. ACM 17(10), 549–557 (1974)
Jensen, K., Kristensen, L.M.: Coloured Petri Nets: Modelling and Validation of Concurrent Systems, 1st edn. Springer, Heidelberg (2009)
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)
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
Kavi, K., Moshtaghi, A., Chen, D.J.: Modeling multithreaded applications using petri nets. Int. J. Parallel Prog. 30(5), 353–371 (2002)
Lamport, L.: How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Trans. Comput. 28(9), 690–691 (1979)
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)
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
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
Milner, R.: Communicating and Mobile Systems: the \(\pi \)-Calculus, pp. 52–53. Cambridge University Press, New York (1999). Chap. 6
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
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
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
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights 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)