Software model checking for resources race

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.

[1]  Tomás Vojnar,et al.  Healing data races on-the-fly , 2007, PADTAD '07.

[2]  Edmund M. Clarke,et al.  The Birth of Model Checking , 2008, 25 Years of Model Checking.

[3]  S. Rajamani,et al.  A decade of software model checking with SLAM , 2011, Commun. ACM.

[4]  Marta Z. Kwiatkowska,et al.  Symbolic model checking for probabilistic timed automata , 2007, Inf. Comput..

[5]  Steve Carr,et al.  Race conditions: a case study , 2001 .

[6]  Yong-Kee Jun,et al.  Verification of Data Races in Concurrent Interrupt Handlers , 2013, Int. J. Distributed Sens. Networks.

[7]  Yong-Kee Jun,et al.  Dynamic Race Detection Techniques for Interrupt-Driven Programs , 2012, FGIT.

[8]  Zhiqiang Ma,et al.  A theory of data race detection , 2006, PADTAD '06.

[9]  Gethin Norman,et al.  Model checking for probabilistic timed automata , 2012, Formal Methods in System Design.

[10]  Klaus Havelund,et al.  Model checking programs , 2000, Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.

[11]  Kenneth L. McMillan,et al.  Parameterized Verification of the FLASH Cache Coherence Protocol by Compositional Model Checking , 2001, CHARME.

[12]  Dawson R. Engler,et al.  RacerX: effective, static detection of race conditions and deadlocks , 2003, SOSP '03.

[13]  Hassen Saïdi,et al.  Construction of Abstract State Graphs with PVS , 1997, CAV.

[14]  Marco Roveri,et al.  Software Model Checking SystemC , 2013, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[15]  Lin Wu,et al.  A PEFKS- and CP-ABE-Based Distributed Security Scheme in Interest-Centric Opportunistic Networks , 2013, Int. J. Distributed Sens. Networks.

[16]  Wolfgang Thomas Computation tree logic and regular omega-languages , 1988, REX Workshop.

[17]  Marco Pistore,et al.  NuSMV 2: An OpenSource Tool for Symbolic Model Checking , 2002, CAV.

[18]  Sarfraz Khurshid,et al.  Test input generation with java PathFinder , 2004, ISSTA '04.

[19]  Joseph Sifakis,et al.  Model checking , 1996, Handbook of Automated Reasoning.

[20]  Stephen N. Freund,et al.  FastTrack: efficient and precise dynamic race detection , 2009, PLDI '09.

[21]  Orna Kupferman,et al.  Model Checking of Safety Properties , 1999, CAV.

[22]  Gerard J. Holzmann,et al.  The SPIN Model Checker , 2003 .

[23]  Gerard J. Holzmann,et al.  SOFTWARE TESTING, VERIFICATION AND RELIABILITY , 2022 .

[24]  Anna Gringauze,et al.  Detecting Data Race and Atomicity Violation via Typestate-Guided Static Analysis , 2008 .

[25]  Gerard J. Holzmann,et al.  The SPIN Model Checker - primer and reference manual , 2003 .

[26]  Yun Zhang,et al.  Static data race detection for concurrent programs with asynchronous calls , 2009, ESEC/FSE '09.

[27]  Gerard J. Holzmann,et al.  Software model checking with SPIN , 2005, Adv. Comput..

[28]  Stephan Merz,et al.  Truly On-The-Fly LTL Model Checking , 2005, TACAS.

[29]  Zhang Jian,et al.  Static Data-Race Detection for Multithread Programs , 2006 .