Michelle L. Goodstein

Learn More
<i>Instruction-grain lifeguards</i> monitor the events of a running application at the level of individual instructions in order to identify and help mitigate application bugs and security exploits. Because such lifeguards impose a 10-100X slowdown on existing platforms, previous studies have proposed hardware designs to accelerate lifeguard processing.(More)
Various research efforts have focused on scaling modular robotic systems up to millions of cooperating devices. However, such efforts have been hampered by the lack of prototype hardware in such quantities and the unavailability of accurate and highly scalable simulations. This paper describes a simulation framework for such systems, which can model the(More)
Online program monitoring is an effective technique for detecting bugs and security attacks in running applications. Extending these tools to monitor parallel programs is challenging because the tools must account for inter-thread dependences and relaxed memory consistency models. Existing tools assume sequential consistency and often slow down the(More)
We present a novel approach to combating web spam. In the spirit of Luis von Ahn's games with a purpose, we propose using a two player game to identify spam pages within search results. Our game asks users to classify a page as either highly relevant to a query or not relevant to a query, with the option of passing. We use data from the game as the input to(More)
Software <i>lifeguards</i>, or tools that monitor applications at runtime, are an effective way of identifying program errors and security exploits. Parallel programs are susceptible to a wider range of possible errors than sequential programs, making them even more in need of online monitoring. Unfortunately, monitoring parallel applications is difficult(More)
Dataflow analysis-based dynamic parallel monitoring (DADPM) is a recent approach for identifying bugs in parallel software as it executes, based on the key insight of explicitly modeling a sliding window of uncertainty across parallel threads. While this makes the approach practical and scalable, it also introduces the possibility of false positives in the(More)
My research interests involve developing new theoretically sound frameworks to tackle important systems problems, with a particular emphasis on parallel processing and sophisticated code analysis. This work allows me to combine my wide-ranging interests in algorithms, theoretical computer science, parallel computer architecture, compiler analysis, and an(More)
Gibbons, and my professors Todd C. Mowry and Babak Falsafi for their guidance towards the completion of this work. I would also like to thank Olatunji Ruwase and Michael Ryan for their comments and valuable Abstract Instruction-grain lifeguards monitor the events of a running application at the level of individual instructions in order to identify and help(More)
As multicore processors become more prevalent, application performance increasingly depends upon parallel execution through multithreading. However, existing software correctness-checking techniques have focused on single-threaded applications and need to be extended to support the efficient monitoring of multithreaded applications. In particular, software(More)