Skip to main content
Top

2017 | OriginalPaper | Chapter

Precise Thread-Modular Abstract Interpretation of Concurrent Programs Using Relational Interference Abstractions

Authors : Raphaël Monat, Antoine Miné

Published in: Verification, Model Checking, and Abstract Interpretation

Publisher: Springer International Publishing

Activate our intelligent search to find suitable subject content or patents.

search-config
loading …

Abstract

We present a static analysis by abstract interpretation of numeric properties in multi-threaded programs. The analysis is sound (assuming a sequentially consistent memory), parameterized by a choice of abstract domains and, in order to scale up, it is modular, in that it iterates over each thread individually (possibly several times) instead of iterating over their product. We build on previous work that formalized rely-guarantee verification methods as a concrete, fixpoint-based semantics, and then apply classic numeric abstractions to abstract independently thread states and thread interference. This results in a flexible algorithm allowing a wide range of precision versus cost trade-offs, and able to infer even flow-sensitive and relational thread interference. We implemented our method in an analyzer prototype for a simple language and experimented it on several classic mutual exclusion algorithms for two or more threads. Our prototype is instantiated with the polyhedra domain and employs simple control partitioning to distinguish critical sections from surrounding code. It relates the variables of all threads using polyhedra, which limits its scalability in the number of variables. Nevertheless, preliminary experiments and comparison with ConcurInterproc show that modularity enables scaling to a large number of thread instances, provided that the total number of variables stays small.

Dont have a licence yet? Then find out more about our products and how to get one now:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Literature
1.
go back to reference Atig, M.F., Bouajjani, A., Burckhardt, S., Musuvathi, M.: On the verification problem for weak memory models. In: POPL 2010, pp. 7–18. ACM, January 2010 Atig, M.F., Bouajjani, A., Burckhardt, S., Musuvathi, M.: On the verification problem for weak memory models. In: POPL 2010, pp. 7–18. ACM, January 2010
2.
go back to reference Bertrane, J., Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., Rival, X.: Static analysis and verification of aerospace software by abstract interpretation. In: Infotech\(@\)Aerospace. AIAA, vol. 2010-3385, pp. 1–38. AIAA, April 2010 Bertrane, J., Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., Rival, X.: Static analysis and verification of aerospace software by abstract interpretation. In: Infotech\(@\)Aerospace. AIAA, vol. 2010-3385, pp. 1–38. AIAA, April 2010
3.
go back to reference Blanchet, B., Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., Monniaux, D., Rival, X.: A static analyzer for large safety-critical software. In: PLDI 2003, pp. 196–207. ACM, June 2003 Blanchet, B., Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., Monniaux, D., Rival, X.: A static analyzer for large safety-critical software. In: PLDI 2003, pp. 196–207. ACM, June 2003
4.
go back to reference Bourdoncle, F.: Efficient chaotic iteration strategies with widenings. In: BjØrner, D., Broy, M., Pottosin, I.V. (eds.) Formal Methods in Programming and Their Applications, FMPA 1993. LNCS, vol. 735, pp. 128–141. Springer, Heidelberg (1993) Bourdoncle, F.: Efficient chaotic iteration strategies with widenings. In: BjØrner, D., Broy, M., Pottosin, I.V. (eds.) Formal Methods in Programming and Their Applications, FMPA 1993. LNCS, vol. 735, pp. 128–141. Springer, Heidelberg (1993)
5.
go back to reference Carré, J.L., Hymans, C.: From single-thread to multithreaded: an efficient static analysis algorithm. Technical report. arXiv:0910.5833v1, EADS October 2009 Carré, J.L., Hymans, C.: From single-thread to multithreaded: an efficient static analysis algorithm. Technical report. arXiv:​0910.​5833v1, EADS October 2009
6.
go back to reference Cohen, A., Namjoshi, K.S.: Local proofs for global safety properties. Formal Methods Syst. Des. 34(2), 104–125 (2008)CrossRefMATH Cohen, A., Namjoshi, K.S.: Local proofs for global safety properties. Formal Methods Syst. Des. 34(2), 104–125 (2008)CrossRefMATH
7.
go back to reference Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: POPL 1977, pp. 238–252. ACM, January 1977 Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: POPL 1977, pp. 238–252. ACM, January 1977
8.
go back to reference Cousot, P., Cousot, R.: Invariance proof methods and analysis techniques for parallel programs. In: Automatic Program Construction Techniques, Chap. 12, pp. 243–271. Macmillan, New York (1984) Cousot, P., Cousot, R.: Invariance proof methods and analysis techniques for parallel programs. In: Automatic Program Construction Techniques, Chap. 12, pp. 243–271. Macmillan, New York (1984)
9.
go back to reference Cousot, P., Halbwachs, N.: Automatic discovery of linear restraints among variables of a program. In: POPL 1978, pp. 84–97. ACM (1978) Cousot, P., Halbwachs, N.: Automatic discovery of linear restraints among variables of a program. In: POPL 1978, pp. 84–97. ACM (1978)
10.
go back to reference Donaldson, A., Kaiser, A., Kroening, D., Tautschnig, M., Wahl, T.: Counterexample-guided abstraction refinement for symmetric concurrent programs. Formal Methods Syst. Des. 41(1), 25–44 (2012)CrossRefMATH Donaldson, A., Kaiser, A., Kroening, D., Tautschnig, M., Wahl, T.: Counterexample-guided abstraction refinement for symmetric concurrent programs. Formal Methods Syst. Des. 41(1), 25–44 (2012)CrossRefMATH
11.
go back to reference Dwyer, M.B.: Modular flow analysis for concurrent software. In: ASE 1997, pp. 264–273. IEEE Computer Society (1997) Dwyer, M.B.: Modular flow analysis for concurrent software. In: ASE 1997, pp. 264–273. IEEE Computer Society (1997)
13.
go back to reference Godefroid, P.: Partial-order methods for the verification of concurrent systems - an approach to the state-explosion problem. Ph.D. thesis, University of Liege, Computer Science Department (1994) Godefroid, P.: Partial-order methods for the verification of concurrent systems - an approach to the state-explosion problem. Ph.D. thesis, University of Liege, Computer Science Department (1994)
14.
go back to reference Grebenshchikov, S., Lopes, N.P., Popeea, C., Rybalchenko, A.: Synthesizing software verifiers from proof rules. In: PLDI 2012, pp. 405–416. ACM (2012) Grebenshchikov, S., Lopes, N.P., Popeea, C., Rybalchenko, A.: Synthesizing software verifiers from proof rules. In: PLDI 2012, pp. 405–416. ACM (2012)
15.
go back to reference Grunwald, D., Srinivasan, H.: Data flow equations for explicitly parallel programs. In: PPOPP 1993, pp. 159–168. ACM (1993) Grunwald, D., Srinivasan, H.: Data flow equations for explicitly parallel programs. In: PPOPP 1993, pp. 159–168. ACM (1993)
16.
go back to reference Gupta, A., Popeea, C., Rybalchenko, A.: Threader: a constraint-based verifier for multi-threaded programs. In: Gopalakrishnan, G., Qadeer, S. (eds.) CAV 2011. LNCS, vol. 6806, pp. 412–417. Springer, Heidelberg (2011). doi:10.1007/978-3-642-22110-1_32 CrossRef Gupta, A., Popeea, C., Rybalchenko, A.: Threader: a constraint-based verifier for multi-threaded programs. In: Gopalakrishnan, G., Qadeer, S. (eds.) CAV 2011. LNCS, vol. 6806, pp. 412–417. Springer, Heidelberg (2011). doi:10.​1007/​978-3-642-22110-1_​32 CrossRef
18.
go back to reference Jeannet, B.: Relational interprocedural verification of concurrent programs. Softw. Syst. Model. 12(2), 285–306 (2013)CrossRef Jeannet, B.: Relational interprocedural verification of concurrent programs. Softw. Syst. Model. 12(2), 285–306 (2013)CrossRef
19.
20.
go back to reference Jones, C.B.: Development methods for computer programs including a notion of interference. Ph.D. thesis, Oxford University, June 1981 Jones, C.B.: Development methods for computer programs including a notion of interference. Ph.D. thesis, Oxford University, June 1981
21.
go back to reference Kusano, M., Wang, C.: Flow-sensitive composition of thread-modular abstract interpretation. In: FSE 2016, pp. 799–809. ACM (2016) Kusano, M., Wang, C.: Flow-sensitive composition of thread-modular abstract interpretation. In: FSE 2016, pp. 799–809. ACM (2016)
22.
go back to reference Lamport, L.: How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Trans. Comput. 28, 690–691 (1979). IEEE Computer SocietyCrossRefMATH Lamport, L.: How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Trans. Comput. 28, 690–691 (1979). IEEE Computer SocietyCrossRefMATH
24.
go back to reference Malkis, A., Podelski, A., Rybalchenko, A.: Thread-modular verification is cartesian abstract interpretation. In: Barkaoui, K., Cavalcanti, A., Cerone, A. (eds.) ICTAC 2006. LNCS, vol. 4281, pp. 183–197. Springer, Heidelberg (2006). doi:10.1007/11921240_13 CrossRef Malkis, A., Podelski, A., Rybalchenko, A.: Thread-modular verification is cartesian abstract interpretation. In: Barkaoui, K., Cavalcanti, A., Cerone, A. (eds.) ICTAC 2006. LNCS, vol. 4281, pp. 183–197. Springer, Heidelberg (2006). doi:10.​1007/​11921240_​13 CrossRef
26.
go back to reference Miné, A.: Static analysis by abstract interpretation of sequential and multi-thread programs. In: Proceedings of the 10th School of Modelling and Verifying Parallel Processes (MOVEP 2012), pp. 35–48, 3–7 December 2012 Miné, A.: Static analysis by abstract interpretation of sequential and multi-thread programs. In: Proceedings of the 10th School of Modelling and Verifying Parallel Processes (MOVEP 2012), pp. 35–48, 3–7 December 2012
27.
28.
go back to reference Miné, A.: Static analysis of run-time errors in embedded real-time parallel C programs. Logical Methods Comput. Sci. (LMCS) 8(26), 63 (2012)MathSciNetMATH Miné, A.: Static analysis of run-time errors in embedded real-time parallel C programs. Logical Methods Comput. Sci. (LMCS) 8(26), 63 (2012)MathSciNetMATH
29.
go back to reference Peterson, G.L.: Myths about the mutual exclusion problem. Inf. Process. Lett. 12(3), 115–116 (1981)CrossRefMATH Peterson, G.L.: Myths about the mutual exclusion problem. Inf. Process. Lett. 12(3), 115–116 (1981)CrossRefMATH
30.
Metadata
Title
Precise Thread-Modular Abstract Interpretation of Concurrent Programs Using Relational Interference Abstractions
Authors
Raphaël Monat
Antoine Miné
Copyright Year
2017
DOI
https://doi.org/10.1007/978-3-319-52234-0_21

Premium Partner