Hardware Mechanisms for Distributed Dynamic Software Analysis
Add to Google Calendar
The complexity of modern software makes it difficult to ship correct programs. Errors can cost money and lives, so developers often use automated software analysis tools to hunt for bugs. By automatically analyzing a program's runtime operation, dynamic analysis tools can find subtle errors that would normally escape the notice of even careful human testers.
These dynamic analyses are more likely to find errors if they observe the program under numerous and varied runtime situations, so, ideally, a program's users would analyze it. Regrettably, these tests cause orders-of-magnitude slowdowns, which few users would tolerate.
This dissertation presents methods of accelerating dynamic software analyses in order to distribute these trials to users. This work will demonstrate that hardware designers can play a key role in mitigating software bugs, as many acceleration mechanisms require hardware support in one form or another.