2003
DOI: 10.1145/949952.940116
|View full text |Cite
|
Sign up to set email alerts
|

Runtime safety analysis of multithreaded programs

Abstract: Foundational and scalable techniques for runtime safety analysis of multithreaded programs are explored in this paper. A technique based on vector clocks to extract the causal dependency order on state updates from a running multithreaded program is presented, together with algorithms to analyze a multithreaded computation against safety properties expressed using temporal logics. A prototype tool implementing our techniques, is also presented, together with examples where it can predict safety errors in multi… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
7
0

Year Published

2004
2004
2023
2023

Publication Types

Select...
4
3

Relationship

1
6

Authors

Journals

citations
Cited by 14 publications
(7 citation statements)
references
References 17 publications
0
7
0
Order By: Relevance
“…Here we have considered a shared memory model which considers only the "happened-before" relation between the processes as opposed to other models for shared memory systems. This model, with slight modifications, is the one which is generally used in runtime verification tools like JMPaX [18]. The vector clock and DCC algorithm described earlier for distributed systems work for this system model as well.…”
Section: System Modelmentioning
confidence: 99%
See 1 more Smart Citation
“…Here we have considered a shared memory model which considers only the "happened-before" relation between the processes as opposed to other models for shared memory systems. This model, with slight modifications, is the one which is generally used in runtime verification tools like JMPaX [18]. The vector clock and DCC algorithm described earlier for distributed systems work for this system model as well.…”
Section: System Modelmentioning
confidence: 99%
“…Other events must happen in a certain sequence. This information about the ordering between events is required by many applications such as debugging and monitoring of distributed programs [7,18] and fault tolerance [20].…”
Section: Introductionmentioning
confidence: 99%
“…The work on JMPaX [21] was already discussed in the introduction. The most distinguishing feature between JMPaX and ViP is that ViP considers all possible traces (up to a certain depth) whereas JMPaX checks the specification only with respect to traces that have either been observed or "predicted" by permuting events that are not causally relevant.…”
Section: Related Workmentioning
confidence: 99%
“…In [21], the authors present JMPaX, a monitoring framework for Java which allows the significance of the analysis results to be increased without actually increasing the set of observed behaviours. More precisely, JMPaX allows the construction and analysis of several different possible program executions from a single observed one.…”
Section: Introductionmentioning
confidence: 99%
“…JPaX [95] presented three algorithms with some optimization to monitor future and past linear time temporal logic (LTL). Java MultiPathExplorer [184] is a tool that checks a past time LTL safety property against a partial order extracted online from an execution trace.…”
Section: Runtime Verification Is a Methods Or Algorithm To Analyze Thementioning
confidence: 99%