JRF-E: using model checking to give advice on eliminating memory model-related bugs
Proceedings of the IEEE/ACM international conference on Automated software engineering
Proceedings of the 13th international ACM SIGPLAN symposium on Principles and practices of declarative programming
SOS: saving time in dynamic race detection with stationary analysis
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Design, verification and applications of a new read-write lock algorithm
Proceedings of the twenty-fourth annual ACM symposium on Parallelism in algorithms and architectures
Automatic testing of sequential and concurrent substitutability
Proceedings of the 2013 International Conference on Software Engineering
Hi-index | 0.00 |
Most approaches to reasoning about multithreaded programs, including model checking, make the implicit assumption that the system being considered is sequentially consistent. This is, however, invalid in most modern computer architectures and results in unsound reasoning for programs that contain data races, where data races are defined by the memory model of the programming environment. We describe an extension to the model checker Java PathFinder that incorporates knowledge of the Java Memory Model to precisely detect data races in Java byte code. Our tool incorporates special purpose heuristic algorithms that result in shorter counterexample paths. Once data races have been eliminated from a program, Java PathFinder can be soundly employed to verify additional properties.