Learn More
We present a new technique called Monotonic Partial Order Reduction (MPOR) that effectively combines dynamic partial order reduction with symbolic state space exploration for model checking concurrent software. Our technique hinges on a new characterization of partial orders defined by computations of a concurrent program in terms of quasi-monotonic(More)
A large number of industrial concurrent programs are being designed based on a model which combines threads with event-based communication. These programs consist of several threads which perform computation by dispatching tasks to other threads via <i>asynchronous function calls</i>. These asynchronous function calls are implemented using function objects,(More)
We propose new, tractably (in some cases provably) efficient algo-rithmic methods for exact (sound and complete) parameterized reasoning about cache coherence protocols. For reasoning about general snoopy cache protocols, we introduce the guarded broadcast protocols model and show how an abstract history graph construction can be used to reason about safety(More)
We propose a framework for improving both the scalability as well as the accuracy of pointer alias analysis, irrespective of its flow or context-sensitivities, by leveraging a three-pronged strategy that effectively combines <i>divide and conquer, parallelization and function summarization</i>. A key step in our approach is to first identify small subsets(More)
Triggering errors in concurrent programs is a notoriously difficult task. A key reason for this is the behavioral complexity resulting from the large number of interleavings of operations of different threads. Efficient static techniques , therefore, play a critical role in restricting the set of interleavings that need be explored in greater depth. The(More)
In this paper, techniques are proposed for limiting state explosion in the context of resource allocation problems. It is shown that given any system organized into a — possibly irregular — network of ¡ — possibly heterogeneous — processes, model checking over that system can be reduced by an efficient, fully automatic and exact method to model checking(More)