Modeling and Verifying Multi-core Programs

  • Nan Zhang
  • Zhenhua Duan
  • Cong Tian
  • Hongwei Du
  • Kai Yang
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10628)

Abstract

To model and verify multi-core programs, this paper formalizes an operational semantics for Cylinder Computation Model (CCM). Further, the advantages of CCM over other concurrency models are highlighted. Moreover, the principle of programming with CCM is presented. In addition, a unified model checking approach in code level to verifying CCM programs is briefly demonstrated. Finally, an example is given to show how multi-core programs with CCM can be realized and verified.

Keywords

Operational semantics Multi-core Parallel Formal method 

References

  1. 1.
    Bolognesi, T., Brinksma, E.: Introduction to the ISO specification language LOTOS. Comput. Netw. ISDN Syst. 14(1), 25–59 (1987)CrossRefGoogle Scholar
  2. 2.
    Brockschmidt, M., Cook, B., Ishtiaq, S., Khlaaf, H., Piterman, N.: T2: temporal property verification. In: Proceedings of International Conference on Tools and Algorithms for the Construction and Analysis of Systems, pp. 387–393 (2016)Google Scholar
  3. 3.
    Cadar, C., Dunbar, D., Engler, D.: KLEE: unassisted and automatic generation of high-coverage tests for complex systems programs. In: Proceedings of USENIX Symposium on Operating Systems Design and Implementation (OSDI 2008), San Diego, CA, USA (2008)Google Scholar
  4. 4.
    Dietsch, D., Heizmann, M., Langenfeld, V., Podelski, A.: Fairness modulo theory: a new approach to LTL software model checking. In: Kroening, D., Păsăreanu, C.S. (eds.) CAV 2015. LNCS, vol. 9206, pp. 49–66. Springer, Cham (2015).  https://doi.org/10.1007/978-3-319-21690-4_4 CrossRefGoogle Scholar
  5. 5.
    Duan, Z.: Temporal Logic and Temporal Logic Programming. Science Press, Beijing (2005)Google Scholar
  6. 6.
    Fischer, B., Inverso, O., Parlato, G.: CSeq: a concurrency pre-processor for sequential C verification tools. In: Proceedings of the 28th IEEE/ACM International Conference on Automated Software Engineering, pp. 710–713. IEEE Press (2013)Google Scholar
  7. 7.
    Herlihy, M., Shavit, N.: The Art of Multiprocessor Programming, Elsevier, Waltham (2008). ISBN 978-0-12-370591-4Google Scholar
  8. 8.
    Hoare, C.A.R.: Communicating sequential processes. Commun. ACM 26(1), 100–106 (1983)CrossRefGoogle Scholar
  9. 9.
    Jensen, K., Kristensen, L.M., Wells, L.: Coloured petri nets and CPN tools for modelling and validation of concurrent systems. Int. J. Softw. Tools Technol. Transf. 9(3–4), 213–254 (2007)CrossRefGoogle Scholar
  10. 10.
    King, J.C.: Symbolic execution and program testing. Commun. ACM 19(7), 385–394 (1976)CrossRefMATHMathSciNetGoogle Scholar
  11. 11.
    Koutney, M., Pietkiewicz-Koutney, M.: Synthesis of petri nets with localities. Sci. Ann. Comput. Sci. 19, 1–23 (2009)MathSciNetGoogle Scholar
  12. 12.
    Liang, Y., Li, S., Zhang, H., et al.: Timing-sequence testing of parallel programs. J. Comput. Sci. Technol. 15(1), 84–95 (2000)CrossRefMATHMathSciNetGoogle Scholar
  13. 13.
    Milner, R.: A Calculus of Communicating Systems, vol. 92. LNCS, Springer, Heidelberg (1980).  https://doi.org/10.1007/3-540-10235-3 MATHGoogle Scholar
  14. 14.
    Navabpour, S., Joshi, Y., Wu, W., Berkovich, S., Medhat, R., Bonakdarpour, B., Fischmeister, S.: RiTHM: a tool for enabling time-triggered runtime verification for c programs. In: Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering, pp. 603–606. ACM (2013)Google Scholar
  15. 15.
    Tomasco, E., Inverso, O., Fischer, B., La Torre, S., Parlato, G.: Verifying concurrent programs by memory unwinding. In: Baier, C., Tinelli, C. (eds.) TACAS 2015. LNCS, vol. 9035, pp. 551–565. Springer, Heidelberg (2015).  https://doi.org/10.1007/978-3-662-46681-0_52 Google Scholar
  16. 16.
    Wang, M., Tian, C., Duan, Z.: Full regular temporal property verification as dynamic program execution. In: Proceedings of ICSE 2017, pp. 226–228. IEEE Press (2017)Google Scholar
  17. 17.
    Yang, C.S.D., Pollock, L.L.: All-uses testing of shared memory parallel programs. Softw. Test. Verification Reliab. 13(1), 3–24 (2003)CrossRefGoogle Scholar
  18. 18.
    Yang, X., Duan, Z.: Operational semantics of Framed Tempura. J. Logic Algebraic Program. 78(1), 22–51 (2008)CrossRefMATHMathSciNetGoogle Scholar
  19. 19.
    Yang, K., Duan, Z., Tian, C., Zhang, N.: A compiler for MSVL and its applications. Theoret. Comput. Sci. (2017). https://doi.org/10.1016/j.tcs.2017.07.032
  20. 20.
    Zhang, N., Duan, Z., Tian, C.: A complete axiom system for propositional projection temporal logic with cylinder computation model. Theoret. Comput. Sci. 609, 639–657 (2016)CrossRefMATHMathSciNetGoogle Scholar

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  • Nan Zhang
    • 1
    • 2
  • Zhenhua Duan
    • 1
    • 2
  • Cong Tian
    • 1
    • 2
  • Hongwei Du
    • 3
  • Kai Yang
    • 1
    • 2
  1. 1.Institute of Computing Theory and TechnologyXidian UniversityXi’anChina
  2. 2.ISN LaboratoryXidian UniversityXi’anChina
  3. 3.Department of Computer Science and TechnologyHarbin Institute of Technology Shenzhen Graduate SchoolShenzhenChina

Personalised recommendations