Date of Award
Doctor of Philosophy
Dr. Zijiang Yang
Today, multi-core processors are used in all computing aspects, including embedded systems such as mobile devices. In order for software programs to benefit from the transition to multi-core processors, the programs need to be concurrent.
Recent research shows that programs developed using the message-passing model can scale better than programs developed using the shared-memory model. However, the message-passing model is not widely adopted, partly, because of the lack of debugging tools. Debugging message-passing programs is very intricate due to their inherent nondeterministic behavior; even with the same input, a program may behave differently when executed multiple times. Bugs in message-passing programs are elusive; they are hard to detect and are hard to reproduce when they appear.
The primary goal of this research is to alleviate the burden of debugging messagepassing based concurrent programs. In particular, we enhance traditional testing by using trace-based symbolic predictive analysis to detect much more errors that couldn't be detected before, and we propose efficient techniques for deterministically replaying an execution in case of failure.
In testing enhancement, we apply a novel predictive analysis technique in which a program execution model and a set of safety properties are encoded as a quantifier-free first-order logic formula, whose satisfiability determines if there exists an execution in which at least one safety property is violated. Also, we have developed DR-MCAPI, the first tool to introduce the deterministic replay capability to message-passing programs for multicore systems. During a recording phase, an unobstructed execution of an input program is monitored to produce a trace. In case of failure, the stored trace is used to enforce an execution that is logically equivalent to the one observed in the recording phase. We have successfully applied our techniques on multicore programs developed using the new MCAPI specification and Web Services described using the BPEL language.
Elwakil, Mohamed Medhat, "Debugging Support for Message-Passing Based Concurrent Software" (2011). Dissertations. 401.