Modern operating systems
Model checking
Transformations for model checking distributed Java programs
SPIN '01 Proceedings of the 8th international SPIN workshop on Model checking of software
Art of Software Testing
Partial-Order Methods for the Verification of Concurrent Systems: An Approach to the State-Explosion Problem
Automated Software Engineering
Software Model Checking: The VeriSoft Approach
Formal Methods in System Design
User Mode Linux(R) (Bruce Perens Open Source)
User Mode Linux(R) (Bruce Perens Open Source)
Accurate Centralization for Applying Model Checking on Networked Applications
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
Netstub: a framework for verification of distributed java applications
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
DMTCP: Transparent checkpointing for cluster computations and the desktop
IPDPS '09 Proceedings of the 2009 IEEE International Symposium on Parallel&Distributed Processing
Cache-Based Model Checking of Networked Applications: From Linear to Branching Time
ASE '09 Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering
Preemption sealing for efficient concurrency testing
TACAS'10 Proceedings of the 16th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Modeling class loaders in Java PathFinder version 7
ACM SIGSOFT Software Engineering Notes
Hi-index | 0.00 |
Verification of distributed software systems by model checking is not a straightforward task due to inter-process communication. Many software model checkers only explore the state space of a single multi-threaded process. Recent work proposes a technique that applies a cache to capture communication between the main process and its peers, and allows the model checker to complete state-space exploration. Although previous work handles non-deterministic output in the main process, any peer program is required to produce deterministic output. This paper introduces a process checkpointing tool. The combination of caching and process checkpointing makes it possible to handle non-determinism on both sides of communication. Peer states are saved as checkpoints and restored when the model checker backtracks and produces a request not available in the cache. We also introduce the concept of strategies to control the creation of checkpoints and the overhead caused by the checkpointing tool.