Skip to main content

SMT-based Bounded Model Checking for Cooperative Software with a Deterministic Scheduler

  • Conference paper
  • First Online:
Structured Object-Oriented Formal Language and Method (SOFL+MSVL 2016)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 10189))

  • 399 Accesses

Abstract

The cooperative software, such as OSEK/VDX multi-tasks software and SystemC multi-threaded software, has been widely applied in the embedded system field. However, due to the flexible scheduling and complex cooperations between tasks or threads, the reliability of developed software is really difficult to be ensured by testing technique. To overcome this problem, model checking technique as a potential solution has attracted great attention in software industry. Recently, many model checking based methods have already been proposed and successfully applied in the verification of cooperative software, but most of them focus on the non-deterministic scheduler based cooperative software such as SystemC. The verification of deterministic scheduler based cooperative software is still at preliminary stage. In this paper, we propose an approach to verify this type of cooperative software. In our work, in order to make the proposed approach more general, the famous OSEK/VDX multi-tasks application is chosen as our target system. Furthermore, as to make the proposed approach more scalable, the advanced SMT-based bounded model checking is applied to carry out verification. We have investigated the effectiveness of our approach based on a series of experiments. The experiment results indicate that our approach can efficiently verify the cooperative software with a deterministic scheduler.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

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

Institutional subscriptions

Notes

  1. 1.

    osek-bmc homepage: http://www.jaist.ac.jp/~s1220209/osek-bmc.htm.

  2. 2.

    \(\mathtt {AUTOSTART}\): if the attribute \(\mathtt {AUTOSTART}\) of a task is set to be \(\mathtt {TRUE}\), the task starts from ready state in the initial state. Otherwise, the task starts from suspended state.

  3. 3.

    \(\mathtt {SCHEDULE}\): if the attribute \(\mathtt {SCHEDULE}\) of a task is set to be \(\mathtt {FULL}\), the task can be preempted by higher priority tasks. Otherwise, the task will not leave running state until the API TerminateTask, ChainTask or Schedule is invoked, or waits for a synchronization event.

References

  1. IEEE 1666: SystemC language Reference Manual (2005)

    Google Scholar 

  2. Clarke, E.M., Emerson, E.A., et al.: Model checking: algorithmic verification and debugging. Commun. ACM 152(11), 74–84 (2009)

    Article  Google Scholar 

  3. Burns, A., Wellings, A.: Real-Time Systems and Programming Languages, 4th edn. Addison Wesley Longman, New York (2009)

    MATH  Google Scholar 

  4. Cimatti, A., Micheli, A., Narasamdya, I., Roveri, M.: Verifying SystemC: a software model checking approach. In: FMCAD, pp. 51–59 (2010)

    Google Scholar 

  5. Alessandro, A., Jacopo, M., Lorenzo, P.: Bounded model checking of software using SMT solvers instead of SAT solvers. Int. J. Softw. Tools Technol. Transf. (STTT) 11(1), 69–83 (2009)

    Article  MATH  Google Scholar 

  6. Cimatti, A., Micheli, A., Narasamdya, I., Roveri, M.: Kratos Homepage (2010). https://es-static.fbk.eu/tools/kratos/

  7. Armin, B., Clarke, E.M., Zhu, Y.: Bounded model checking. Adv. Comput. 58(11), 117–148 (2003)

    Google Scholar 

  8. Basili, V.R., Selby, R.W.: Comparing the effectiveness of software testing strategies. TSE 13, 1278–1296 (1987)

    Google Scholar 

  9. Behrmann, G., David, A., Larsen, K.G.: A tutorial on UPPAAL. In: Formal Methods for the Design of Real-Time Systems: 4th International School on Formal Methods for the Design of Computer Communication, and Software Systems, pp. 200–236 (2004)

    Google Scholar 

  10. Flanagan, C., Godefroid, P.: Dynamic partial-order reduction for model checking software. In: POPL, pp. 110–121 (2005)

    Google Scholar 

  11. Traulsen, C., Cornet, J., Moy, M., Maraninchi, F.: A SystemC/TLM semantics in Promela and its possible applications. In: Bošnački, D., Edelkamp, S. (eds.) SPIN 2007. LNCS, vol. 4595, pp. 204–222. Springer, Heidelberg (2007). doi:10.1007/978-3-540-73370-6_14

    Chapter  Google Scholar 

  12. Cytron, R., Ferrante, J., Rosen, B.K., Wegman, M.N., Zadeck, F.K.: An efficient method of computing static single assignment form. In: POPL, pp. 25–35 (1989)

    Google Scholar 

  13. Beyer, D., Cimatti, A., Griggio, A., Keremoglu, M.E., Sebastiani, R.: Software model checking via large-block encoding. In: FMCAD, pp. 25–32 (2009)

    Google Scholar 

  14. Kroening, D., Sharygina, N.: Formal verification of SystemC by automatic hardware/software partitioning. In: MEMOCODE, pp. 101–110 (2005)

    Google Scholar 

  15. Tabakov, D., Kamhi, G., Vardi, M.Y., Singerman, E.: A temporal language for SystemC. In: FMCAD, pp. 1–9 (2008)

    Google Scholar 

  16. Kroening, D., Clarke, E., et al.: The CBMC Homepage (2004). http://www.cprover.org/cbmc/

  17. Duan, Z.: Temporal Logic and Temporal Logic Programming. Science Press, Beijing (2005)

    Google Scholar 

  18. Duan, Z., Tian, C., Zhang, L.: A decision procedure for propositional projection temporal logic with infinite models. Acta Informatica 45(1), 43–78 (2008)

    Article  MathSciNet  MATH  Google Scholar 

  19. Duan, Z., Yang, X., Koutny, M.: Framed temporal logic programming. Sci. Comput. Program. 70(1), 31–61 (2008)

    Article  MathSciNet  MATH  Google Scholar 

  20. 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

    Chapter  Google Scholar 

  21. Clarke, E.M., Kroening, D., Sharygina, N., Yorav, K.: SATABS: SATBased predicate abstraction for ANSI-C. In: TACAS, pp. 570–574 (2005)

    Google Scholar 

  22. Clarke, E.M., Grumberg, O., Long, D.E.: Model checking and abstraction. ACM Trans. Program. Lang. Syst. (TOPLAS) 16(5), 1512–1542 (1994)

    Article  Google Scholar 

  23. Holzmann, G.J.: The Spin Model Checker: Primer and Reference Manual. Lucent Technologies Inc., Bell Laboratories, Boston (2003)

    Google Scholar 

  24. George, C.N., Scott, M., Shree, P.R., Westley, W.: CIL: intermediate language and tools for analysis and transformation of C programs. In: Proceedings of the 11th International Conference on Compiler Construction, pp. 213–228 (2002)

    Google Scholar 

  25. Zhang, H., Aoki, T., et al.: SMT-based bounded model checking for OSEK/VDX applications. In: 20th APSEC, pp. 307–314 (2013)

    Google Scholar 

  26. Zhang, H., Aoki, T., Chiba, Y.: A spin-based approach for checking OSEK/VDX applications. In: 3rd International Workshop FTSCS in ICFEM, pp. 239–255 (2014)

    Google Scholar 

  27. Cordeiro, L., Fischer, B.: Verifying multi-threaded software using SMT-based context-bounded model checking. In: ICSE 2011, vol. 3(9), pp. 331–340, May 2011

    Google Scholar 

  28. Waszniowski, L., Hanzlek, Z.: Formal verification of multitasking applications based on timed automata model. Real-Time Syst. 38(1), 39–65 (2008)

    Article  MATH  Google Scholar 

  29. Lemieux, J.: Programming in the OSEK/VDX environment. CMP, Suite 200 Lawrence, KS 66046, USA (2001)

    Google Scholar 

  30. de Moura, L., Passmore, G.: Z3 Homepage. http://z3.codeplex.com/

  31. Blanc, N., Kroening, D.: Race analysis for SystemC using model checking. In: ICCAD, pp. 356–363 (2008)

    Google Scholar 

  32. Blanc, N., Kroening, D., Sharygina, N.: Scoot: a tool for the analysis of SystemC models. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 467–470. Springer, Heidelberg (2008). doi:10.1007/978-3-540-78800-3_36

    Chapter  Google Scholar 

  33. Tian, C., Duan, Z., Zhang, N.: An efficient approach for abstraction-refinement in model checking. Theor. Comput. Sci. 461, 76–85 (2012)

    Article  MathSciNet  MATH  Google Scholar 

Download references

Acknowledgements

This work is supported by the National Science Foundation of China (Grants No. 61602224 and No. 61272213) and the Fundamental Research Funds for the Central Universities (Grants No. lzujbky-2016-142 and No. lzujbky-2016-k07).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Haitao Zhang .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2017 Springer International Publishing AG

About this paper

Cite this paper

Zhang, H., Lu, Y. (2017). SMT-based Bounded Model Checking for Cooperative Software with a Deterministic Scheduler. In: Liu, S., Duan, Z., Tian, C., Nagoya, F. (eds) Structured Object-Oriented Formal Language and Method. SOFL+MSVL 2016. Lecture Notes in Computer Science(), vol 10189. Springer, Cham. https://doi.org/10.1007/978-3-319-57708-1_11

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-57708-1_11

  • Published:

  • Publisher Name: Springer, Cham

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

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

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics