Abstract
In this paper, we consider the backward reachability problem of multi-threaded programs where the threads have priorities, can be synchronized using locks and are scheduled by a priority based round-robin scheduler. For that, we extend the well known Dynamic Pushdown Network model with priorities and locks (called PL-DPN). We represent potentially infinite sets of configurations of PL-DPNs using finite state automata and show that the backward reachability sets of PL-DPNs are regular and can be effectively computed if we restrict the usage of priorities inside lock usages. Also, we show that allowing an unrestricted usage of nested locks and priorities leads to undecidability. We evaluate the performance of our algorithm on benchmarks drawn from real time systems, device drivers and hypervisor obtaining encouraging results and discovering new bugs.
This work was partially funded by the FUI project FREENIVI.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Bouajjani, A., Müller-Olm, M., Touili, T.: Regular symbolic analysis of dynamic networks of pushdown systems. In: Abadi, M., Alfaro, L. (eds.) CONCUR 2005. LNCS, vol. 3653, pp. 473–487. Springer, Heidelberg (2005). doi:10.1007/11539452_36
Lammich, P., Müller-Olm, M., Wenner, A.: Predecessor sets of dynamic pushdown networks with tree-regular constraints. In: Bouajjani, A., Maler, O. (eds.) CAV 2009. LNCS, vol. 5643, pp. 525–539. Springer, Heidelberg (2009). doi:10.1007/978-3-642-02658-4_39
Kahlon, V., Ivančić, F., Gupta, A.: Reasoning about threads communicating via locks. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 505–518. Springer, Heidelberg (2005). doi:10.1007/11513988_49
Diaz, M., Touili, T.: Reachability analysis of dynamic pushdown networks with priorities. In: El Abbadi, A., Garbinato, B. (eds.) NETYS 2017. LNCS, vol. 10299, pp. 288–303. Springer, Cham (2017). doi:10.1007/978-3-319-59647-1_22
Kidd, N., Jagannathan, S., Vitek, J.: One stack to run them all. In: van de Pol, J., Weber, M. (eds.) SPIN 2010. LNCS, vol. 6349, pp. 245–261. Springer, Heidelberg (2010). doi:10.1007/978-3-642-16164-3_18
Atig, M.F., Bouajjani, A., Touili, T.: Analyzing asynchronous programs with preemption. In: FSTTCS, pp. 37–48 (2008)
PL-DPN tool website: https://github.com/marcio-diaz/pl-dpn-tool
Kroening, D., et al.: Effective verification of low-level software with nested interrupts. In: Design, Automation and Test in Europe Conference and Exhibition (DATE) (2015)
Clarke, E., Kroening, D., Lerda, F.: A tool for checking ANSI-C programs. In: Jensen, K., Podelski, A. (eds.) TACAS 2004. LNCS, vol. 2988, pp. 168–176. Springer, Heidelberg (2004). doi:10.1007/978-3-540-24730-2_15
Commit message fixing issue found: https://github.com/xvisor/xvisor/commit/e5dd8291b5e3f0c552b9aacc73ef2f000ae14c09
Author information
Authors and Affiliations
Corresponding authors
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2017 Springer International Publishing AG
About this paper
Cite this paper
Diaz, M., Touili, T. (2017). Dealing with Priorities and Locks for Concurrent Programs. In: D'Souza, D., Narayan Kumar, K. (eds) Automated Technology for Verification and Analysis. ATVA 2017. Lecture Notes in Computer Science(), vol 10482. Springer, Cham. https://doi.org/10.1007/978-3-319-68167-2_15
Download citation
DOI: https://doi.org/10.1007/978-3-319-68167-2_15
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-68166-5
Online ISBN: 978-3-319-68167-2
eBook Packages: Computer ScienceComputer Science (R0)