Skip to main content
Log in

Software model checking for resources race

  • Published:
Cluster Computing Aims and scope Submit manuscript

Abstract

The difficulty of finding resources race is well known. Such errors are hard to be detected, because they often happen irregularly and reproduce difficultly. Especially, the kind race conflicts exist among processes, threads, and interrupts. This paper provided a novel approach to detect the resources race, namely software model checking. It constructed Boolean program and Promela models for resources race. Furthermore, the Promela models have been tested by using the model checker, SPIN. Software model checking can detect resources race in concurrent program without running, although the program had used timing control or mutual exclusion lock to avoid the race. Furthermore, it can find deadlock also, if the program use the mutual locks in a wrong way.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18

Similar content being viewed by others

References

  1. Tchamgoue, G.M., Kim, K.H., Jun, Y.K.: Verification of data races in concurrent interrupt handlers. Int. J. Distrib. Sens. Netw. 2013, 1–15 (2013)

    Google Scholar 

  2. Banerjee, U., Bliss, B., Ma, Z., Petersen, P.: A theory of data race detection. In: PADTAD-IV ACM, pp. 69–78, Portland (2006)

  3. Tchamgoue, G.M., Kim, K.H., Jun, Y.K.: Dynamic race detection techniques for interrupt-driven programs. In: FGIT, LNCS 7709, pp. 148–153. Springer, Berlin (2012)

  4. Ping, W., Yiyun, C., Jian, Z.: Static data-race detection for multithread programs. J. Comput. Res. Dev. 43, 329–337 (2006)

    Article  Google Scholar 

  5. Engler, D., Ashcraft, K.: RacerX: effective, static detection of race conditions and deadlocks. In: Proceedings of the SOSP’03, Bolton Landing, New York, USA, October 19–22, pp. 237–252 (2003)

  6. Tchamgoue, G.M., Kim, K.H., Jun, Y.K.: Dynamic race detection Techniques for interrupt-driven programs. In: FGIT, :LNCS 7709, pp. 148–153. Springer, Berlin (2012)

  7. Flanagan, C., Freund, S.N.: FastTrack: efficient and precise dynamic race detection. ACM Sigplan Not. 44, 121–133 (2009)

    Article  Google Scholar 

  8. křena, B., Letko, Z., Tzoref, R.: Healing data races on-the-fly. In: Proceedings of the 2007 ACM workshop on Parallel and distributed systems: testing and debugging, pp. 54–64. ACM (2007)

  9. Kahlon, V., Sinha, N., Zhang, Y.: Static data race detection for concurrent programs with asynchronous calls. In: ESEC/FSE ’09 Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering, pp. 13–22 (2009)

  10. Yang, Y., Gringauze, A., Wu, D., Rohde, H.K.: Detecting data race and atomicity violation via typestate-guided static analysis. US Patent 8,510,722 (2013)

  11. Carr, S., Mayo, J., Shene, C.K.: Race conditions : a case study. J. Comput. Small Coll. 17: 88–102 (2001)

  12. Clarke, E.M., Emerson, A., Sifakis, J.: Model checking: algorithmic verification and debugging. Commun. ACM 52(11), 74–84 (2007)

    Article  Google Scholar 

  13. Clarke, E.M.: The birth of model checking. 25 Years of Model Checking (2008)

  14. Thomas, W.: Computation tree logic and regular omega-languages. J. Linear Time Branch. Time Partial Order Log. Models Concurr. 66(3): 1011–1057 (1989)

  15. Hammer, M., Knapp, A., Merz, S.: Truly on-the-fly LTL model checking. In: Halbwachs, N., Zuck, L. (eds.), TACAS, LCNS 3440. Springer, Heidelberg (2005)

  16. Kupferman, O., Vardi, M.Y.: Model checking of safety properties. J. Form. Methods Syst. Des. 19(3), 291–314 (2001)

    Article  MATH  Google Scholar 

  17. McMillan, K.L.: Parameterized verification of the FLASH cache coherence protocol by compositional model checking. In: CHARME 01: IFIP Working Conference on Correct Hardware Design and Verification Methods: LNCS 2144, pp. 179–195. Springer, Heidelberg (2001)

  18. Norman, G., Parker, D., Sproston, J.: Model checking for probabilistic timed automata. J. Form. Methods Syst. Des. 43(2), 164–190 (2013)

    Article  MATH  Google Scholar 

  19. Visser, W.: Model checking programs. In: 15th IEEE International Conference on Automated Software Engineering, pp. 203–232. IEEE Press, New York (2000)

  20. Ball, T., Levin, V., Rajamani, S.K.: A decade of software model checking with SLAM. Commun. ACM 54(7), 68–76 (2011)

    Article  Google Scholar 

  21. Cimatti, A., et al.: NuSMV 2: an opensource tool for symbolic model checking. In: International Conference on Computer Aided Verification, pp. 359–364. Springer, Berlin (2010)

  22. Holzmann, G.J.: Software model checking with spin. Adv. Comput. 65(05), 77–108 (2005)

    Article  Google Scholar 

  23. Graf, S., Saidi, H.: Construction of abstract state graphs with PVS. In: Proceedings of the Computer-aided Verication (CAV 97), pp. 72–83. Springer, Berlin (1997)

  24. Holzmann, G.J., Smith, M.H.: Software model checking: extracting verification models from source code. Softw. Test. Verif. Reliab. 11(2), 481–497 (2001)

    Article  Google Scholar 

  25. Cimatti, A., Narasamdya, I., Roveri, M.: Software model checking SystemC. IEEE Trans. Comput.-Aided Des. Integr. Circuits Syst. 32(5), 774–787 (2013)

    Article  Google Scholar 

  26. Visser, W., Corina, S.P., Khurshid, S.: Test Input Generation with Java PathFinder. ISSTA’04. Boston. Massachusetts, USA (2004)

  27. Holzmann, G.J.: SPIN Model Checker. The Primer and Reference Manual. Addison-Wesley Professional, Los Angeles (2003)

Download references

Acknowledgements

This research is supported by the Fundamental Research Funds for the Central Universities. 2015QN13.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Hong Wang.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Wang, H., Zhang, T. Software model checking for resources race. Cluster Comput 20, 179–193 (2017). https://doi.org/10.1007/s10586-017-0757-z

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10586-017-0757-z

Keywords

Navigation