Abstract
This work develops a type of local analysis that can prove concurrent systems deadlock free. As opposed to examining the overall behaviour of a system, local analysis consists of examining the behaviour of small parts of the system to yield a given property. We analyse pairs of interacting components to approximate system reachability and propose a new sound but incomplete/approximate framework that checks deadlock and local-deadlock freedom. By replacing exact reachability by this approximation, it looks for deadlock (or local-deadlock) candidates, namely, blocked (locally-blocked) system states that lie within our approximation. This characterisation improves on the precision of current approximate techniques. In particular, it can tackle non-hereditary deadlock-free systems, namely, deadlock-free systems that have a deadlocking subsystem. These are neglected by most approximate techniques. Furthermore, we demonstrate how SAT checkers can be used to efficiently implement our framework, which, typically, scales better than current techniques for deadlock-freedom analysis. This is demonstrated by a series of practical experiments.
Article PDF
Similar content being viewed by others
References
Attie PC, Bensalem S, Bozga M, Jaber M, Sifakis J, Zaraket FA (2013) An abstract framework for deadlock prevention in BIP. In: FORTE, number 7892 in LNCS. Springer, pp 161–177
Attie PC, Bensalem S, Bozga M, Jaber M, Sifakis J, Zaraket FA (2018) Global and local deadlock freedom in BIP. ACM Trans Softw Eng Methodol 26(3):9:1–9:48
Avrunin, G.S., Buy, U.A., Corbett, J.C., Dillon, L.K., Wileden, J.C.: Automated analysis of concurrent systems with the constrained expression toolset. IEEE Trans Softw Eng 17(11), 1204–1222 (1991)
Attie PC, Chockler H (2005) Efficiently verifiable conditions for deadlock-freedom of large concurrent programs. In: VMCAI. Springer, pp 465–481
Apt, K.R., Francez, N., De Roever, W.P.: A proof system for communicating sequential processes. ACM Trans Program Lang Syst (TOPLAS) 2(3), 359–385 (1980)
Antonino P, Gibson-Robinson T, Roscoe AW (2016) Efficient deadlock-freedom checking using local analysis and SAT solving. In: IFM, number 9681 in LNCS. Springer, pp 345–360
Antonino P, Gibson-Robinson T, Roscoe AW (2016) Tighter reachability criteria for deadlock freedom analysis. In: FM, number 9995 in LNCS. Springer
Antonino P, Gibson-Robinson T, Roscoe AW (2017) The automatic detection of token structures and invariants using SAT checking. In: TACAS, number 10206 in LNCS. Springer, pp 249–265
Antonino P, Gibson-Robinson T, Roscoe AW (2017) Checking static properties using conservative sat approximations for reachability. In: Formal methods: foundations and applications. Springer, pp 233–250
Antonino P, Gibson-Robinson T, Roscoe AW (2018) Experiment package. www.cs.ox.ac.uk/people/pedro.antonino/facpkg.zip
Antonino P (2018) Verifying concurrent systems by approximations. DPhil thesis, University of Oxford. https://ora.ox.ac.uk/objects/uuid:f75c782c-a168-49b3-bfed-e2715f027157
Antonino P, Oliveira MM, Sampaio A, Kristensen K, Bryans J (2014) Leadership election: an industrial SoS application of compositional deadlock verification. In: NFM, volume 8430 of LNCS, pp 31–45
Audemard, G., Simon, L.: Predicting learnt clauses quality in modern SAT solvers. IJCAI'09, pp. 399–404. CA, USA, San Francisco (2009)
Antonino P, Sampaio A, Woodcock J (2014) A refinement based strategy for local deadlock analysis of networks of CSP processes. In: FM, volume 8442 of LNCS, pp 62–77
Bensalem, S., Bozga, M., Legay, A., Nguyen, T.-H., Sifakis, J., Yan, R.: Component-based verification using incremental design and invariants. Softw Syst Model 15(2), 427–451 (2016)
Biere A, Cimatti A, Clarke E, Zhu Y (1999) Symbolic model checking without bdds. In: Tools and algorithms for the construction and analysis of systems, pp 193–207
Burch, J.R., Clarke, E.M., McMillan, K.L., Dill, D.L., Hwang, L.-J.: Symbolic model checking: 1020 states and beyond. Inf Comput 98(2), 142–170 (1992)
Bensalem S, Griesmayer A, Legay A, Nguyen T-H, Sifakis J, Yan R (2011) D-finder 2: towards efficient correctness of incremental design. In: NFM, pp 453–458
Barghouti, N.S., Kaiser, G.E.: Concurrency control in advanced database applications. ACM Comput Surv 23(3), 269–317 (1991)
Baier C, Katoen J-P (2008) Principles of model checking (representation and mind series). The MIT Press
Bensalem, S., Lakhnech, Y.: Automatic generation of invariants. Form Methods Syst Des 15(1), 75–92 (1999)
Brookes, S.D., Roscoe, A.W.: Deadlock analysis in networks of communicating processes. Distrib Comput 4, 209–230 (1991)
Corbett, J.C., Avrunin, G.S.: Using integer programming to verify general safety and liveness properties. Form Methods Syst Des 6(1), 97–123 (1995)
Chaki, S., Clarke, E., Ouaknine, J., Sharygina, N., Sinha, N.: Concurrent software verification with states, events, and deadlocks. Form Asp Comput 17(4), 461–483 (2005)
Coffman, E.G., Elphick, M., Shoshani, A.: System deadlocks. ACM Comput Surv (CSUR) 3(2), 67–78 (1971)
Clarke E, Grumberg O, Jha S, Lu Y, Veith H (2000) Counterexample-guided abstraction refinement. In: Computer aided verification. Springer, pp 154–169
Cheung, S.C., Kramer, J.: Tractable dataflow analysis for distributed systems. IEEE Trans Softw Eng 20(8), 579–593 (1994)
Corbett, J.C.: Evaluating deadlock detection methods for concurrent software. IEEE Trans Softw Eng 22(3), 161–180 (1996)
Dwyer, M.B., Clarke, L.A., Cobleigh, J.M., Naumovich, G.: Flow analysis for verifying properties of concurrent software systems. ACM Trans Softw Eng Methodol 13(4), 359–430 (2004)
Conserva Filho MS, Oliveira MVM, Sampaio A, Cavalcanti A (2016) Local livelock analysis of component-based models. In: ICFEM, pp 279–295
Gibson-Robinson T, Armstrong P, Boulgakov A, Roscoe AW (2014) FDR3—a modern refinement checker for CSP. In: TACAS, volume 8413 of LNCS, pp 187–201
Gibson-Robinson T, Hansen H, Roscoe AW, Wang Xu (2015) Practical partial order reduction for CSP. In: NFM, volume 9058 of LNCS. Springer, pp 188–203
Godefroid, P., Wolper, P.: Using partial orders for the efficient verification of deadlock freedom and safety properties. FMSD 2(2), 149–164 (1993)
Hoare, C.A.R.: Communicating sequential processes. Prentice-Hall, Upper Saddle River (1985)
Herlihy, M., Shavit, N.: The art of multiprocessor programming. Morgan Kaufmann Publishers Inc., San Francisco (2008)
Jezequel L, Lime D (2016) Lazy reachability analysis in distributed systems. In: Desharnais J, Jagadeesan R (eds) CONCUR 2016, volume 59 of Leibniz international proceedings in informatics (LIPIcs). Schloss Dagstuhl–Leibniz-Zentrum fuer Informatik, Dagstuhl, Germany, 2016, pp 17:1–17:14
Kanellakis, P.C., Smolka, S.A.: Ccs expressions, finite state processes, and three problems of equivalence. Inf Comput 86(1), 43–68 (1990)
Lamport, L.: Proving the correctness of multiprocess programs. IEEE Trans Softw Eng 2, 125–143 (1977)
Lambertz C, Majster-Cederbaum M (2011) Analyzing component-based systems on the basis of architectural constraints. In: FSEN. Springer, pp 64–79
Martin Jeremy MR (1996) The design and construction of deadlock-free concurrent systems. Ph.D. thesis, University of Buckingham
Martin JMR, Jassim SA (1997) An efficient technique for deadlock analysis of large scale process networks. In: FME '97, pp 418–441
Oliveira MVM, Antonino P, Ramos R, Sampaio A, Mota A, Roscoe AW (2016) Rigorous development of component-based systems using component metadata and patterns. Form Asp Comput 1–68
Otoni R, Cavalcanti A, Sampaio A (2017) Local analysis of determinism for CSP. In: Proceedings of formal methods: foundations and applications—20th Brazilian symposium, SBMF 2017, Recife, Brazil, 29 November–1 December 2017, pp 107–124
Ouaknine, J., Palikareva, H., Roscoe, A.W., Worrell, J.: A static analysis framework for livelock freedom in CSP. LMCS 9(3), (2013)
Peled D (1993) All from one, one for all: on model checking using representatives. In: Computer aided verification. Springer, pp 409–423
Plotkin GD (1981) A structural approach to operational semantics. Technical report, DAIMI FN-19, Computer Science Department, Aarhus University
Palikareva, H., Ouaknine, J., Roscoe, A.W.: SAT-solving in CSP trace refinement. Sci Comput Program 77(10), 1178–1197 (2012)
Ramos RT (2011) Systematic development of trustworthy component-based systems. Ph.D. thesis, Universidade Federal de Pernambuco
Raymond, K.: A tree-based algorithm for distributed mutual exclusion. ACM Trans Comput Syst (TOCS) 7(1), 61–77 (1989)
Roscoe, A.W., Dathi, N.: The pursuit of deadlock freedom. Inf Comput 75(3), 289–327 (1987)
Roscoe AW, Gardiner PHB, Goldsmith M, Hulance JR, Jackson DM, Scattergood JB (1995) Hierarchical compression for model-checking CSP or how to check 10\(^{20}\) dining philosophers for deadlock. In: TACAS, pp 133–152
Roscoe, A.W.: The theory and practice of concurrency. Prentice Hall, Upper Saddle River (1998)
Roscoe, A.W.: Understanding Concurrent Systems. Springer (2010)
Savitch, W.J.: Relationships between nondeterministic and deterministic tape complexities. J Comput Syst Sci 4(2), 177–192 (1970)
Scholten, C.S., Dijkstra, E.W.: A class of simple communication patterns, pp. 334–337. Springer, New York (1982)
Tarry G (1895) Le probleme des labyrinthes. Nouvelles annales de mathématiques. journal des candidats aux écoles polytechnique et normale 14:187–190
Tel, G.: Introduction to distributed algorithms, 2nd edn. Cambridge University Press, Cambridge (2000)
Timm, N., Gruner, S., Sibanda, P.: Model checking of concurrent software systems via heuristic-guided sat solving. In: Dastani, M., Sirjani, M. (eds.) Fundamentals of software engineering, pp. 244–259. Springer, Cham (2017)
Tseitin G (1968) On the complexity of derivation in propositional calculus. Stud Constrained Math Math Logic
Valmari, A.: A stubborn attack on state explosion. Form Methods Syst Des 1(4), 297–322 (1992)
Yantchev, J., Jesshope, C.R.: Adaptive, low latency, deadlock-free packet routing for networks of processors. IEE Proc E Comput Digit Tech 136(3), 178–186 (1989)
Yeh WJ, Young M (1991) Compositional reachability analysis using process algebra. In: Proceedings of the symposium on testing, analysis, and verification. ACM, pp 49–59
Acknowledgements
The first author is a CAPES (Coordenação de Aperfeiçoamento de Pessoal de NÍvel Superior) Foundation scholarship holder (Process No: 13201/13-1). The second and third authors are partially sponsored by EPSRC (Engineering and Physical Sciences Research Council, UK) under Agreement No. EP/N022777, and Innovate UK and the Aerospace Technology Institute via the SECT-AIR Project under Agreement No. 113099. We thank the anonymous reviewers for their valuable comments that helped improve this paper.
Author information
Authors and Affiliations
Corresponding author
Additional information
by Eerke Albert Boiten
Publisher’s Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.
About this article
Cite this article
Antonino, P., Gibson-Robinson, T. & Roscoe, A.W. Efficient verification of concurrent systems using local-analysis-based approximations and SAT solving. Form Asp Comp 31, 375–409 (2019). https://doi.org/10.1007/s00165-019-00483-2
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00165-019-00483-2