Bounded Model Checking of Concurrent Programs
We propose a SAT-based bounded verification technique, called TCBMC, for threaded C programs. Our work is based on CBMC, which models sequential C programs in which the number of executions for each loop and the depth of recursion are bounded.
The novelty of our approach is in bounding the number of context switches allowed among threads. Thus, we obtain an efficient modeling that can be sent to a SAT solver for property checking. We also suggest a novel technique for modeling mutexes and Pthread conditions in concurrent programs. Using this bounded technique, we can detect bugs that invalidate safety properties. These include races and deadlocks, the detection for which is crucial for concurrent programs.
KeywordsModel Check Global Variable Concurrent Program Context Switch Satisfying Assignment
- 3.Clarke, E., Grumberg, O., Peled, D.: Model Checking. MIT Press, Cambridge (1999)Google Scholar
- 5.Farchi, E., Nir, Y., Ur, S.: Concurrent Bug Patterns and How to Test them. In: Workshop on Parallel and Distributed Systems: Testing and Debugging (2003)Google Scholar
- 6.Ivancic, F., Yang, Z., Gupta, A., Ganai, M.K., Ashar, P.: Efficient SAT-based bounded model checking for software verification. In: ISoLA (2004)Google Scholar
- 7.Kroening, D., Clarke, E., Yorav, K.: Behavioral Consistency of C and Verilog Programs Using Bounded Model Checking. In: DAC (2003)Google Scholar