Partial orders for parallel debugging
PADD '88 Proceedings of the 1988 ACM SIGPLAN and SIGOPS workshop on Parallel and distributed debugging
Detecting access anomalies in programs with critical sections
PADD '91 Proceedings of the 1991 ACM/ONR workshop on Parallel and distributed debugging
The temporal logic of reactive and concurrent systems
The temporal logic of reactive and concurrent systems
Reasoning about knowledge
Eraser: a dynamic data race detector for multithreaded programs
ACM Transactions on Computer Systems (TOCS)
A parameterized type system for race-free Java programs
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Local Knowledge Assertions in a Changing World
Proceedings of the Sixth Conference on Theoretical Aspects of Rationality and Knowledge
Reasoning about Message Passing in Finite State Environments
ICALP '00 Proceedings of the 27th International Colloquium on Automata, Languages and Programming
Synthesizing Monitors for Safety Properties
TACAS '02 Proceedings of the 8th International Conference on Tools and Algorithms for the Construction and Analysis of Systems
Model-Checking of causality properties
LICS '95 Proceedings of the 10th Annual IEEE Symposium on Logic in Computer Science
An Exprssively Complete Linear Time Temporal Logic for Mazurkiewicz Traces.
LICS '97 Proceedings of the 12th Annual IEEE Symposium on Logic in Computer Science
Runtime safety analysis of multithreaded programs
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
Atomizer: a dynamic atomicity checker for multithreaded programs
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A foundation for actor computation
Journal of Functional Programming
Efficient Decentralized Monitoring of Safety in Distributed Systems
Proceedings of the 26th International Conference on Software Engineering
Hi-index | 0.00 |
Violations of a number of common safety properties of multithreaded programs-such as atomicity and absence of dataraces-cannot be observed by looking at the linear execution trace. We characterize a class of such properties, called robust properties, and define a simple but expressive epistemic logic to specify them. We then develop an efficient algorithm to automatically monitor and predict violations of robust safety properties. Our algorithm is based on capturing the causal structure of a computation through a mechanism similar to vector clock updates. The algorithm automatically synthesizes decentralized monitors to evaluate the information at each thread and to detect and predict safety violations. Based on this approach, a tool named DAME has been developed and evaluated on some simple examples.