2010
DOI: 10.1145/1707801.1706351
|View full text |Cite
|
Sign up to set email alerts
|

Dynamically checking ownership policies in concurrent c/c++ programs

Abstract: Concurrent programming errors arise when threads share data incorrectly. Programmers often avoid these errors by using synchronization to enforce a simple ownership policy: data is either owned exclusively by a thread that can read or write the data, or it is read owned by a set of threads that can read but not write the data. Unfortunately, incorrect synchronization often fails to enforce these policies and memory errors in languages like C and C++ can violate t… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1

Citation Types

0
25
0

Year Published

2010
2010
2021
2021

Publication Types

Select...
3
2
1

Relationship

0
6

Authors

Journals

citations
Cited by 7 publications
(25 citation statements)
references
References 18 publications
0
25
0
Order By: Relevance
“…The programmer must ensure that data is shared correctly using consistent mechanisms. Our own previous work in SharC uses sharing annotations on all types [5], while Martin et al [24] use dynamic ownership assertions to detect where such rules are violated. Furthermore, external libraries may already use locks to protect their own data -converting these libraries to use shelters may not be desirable, practical or even possible.…”
Section: Other Synchronization Strategiesmentioning
confidence: 99%
“…The programmer must ensure that data is shared correctly using consistent mechanisms. Our own previous work in SharC uses sharing annotations on all types [5], while Martin et al [24] use dynamic ownership assertions to detect where such rules are violated. Furthermore, external libraries may already use locks to protect their own data -converting these libraries to use shelters may not be desirable, practical or even possible.…”
Section: Other Synchronization Strategiesmentioning
confidence: 99%
“…Shoal [4] builds on SharC and lets programmers assign rules to entire data-structures, as opposed to individual objects. More recently, Martin et al [27] present an annotation technique for C/C++ programs that lets programmers declare dataownership properties (which threads own which data). As in our work, they use a dynamic tool to check specifications.…”
Section: Related Workmentioning
confidence: 99%
“…the various alternatives, one approach to detecting data races is to require the programmer to specify the intended sharing, using special annotations, and detect accesses that violate these intentions [11,12,15,22,24,25,33]. Especially for languages like C and C++, this approach can simplify and reduce the overhead of data race detection since tools based on this approach do not need to autonomously differentiate between accesses that correspond to intended sharing and those that violate these intentions.…”
mentioning
confidence: 99%
“…The data race detectors closest to our work are: SharC [11], Shoal [12], and a tool that we refer to as DCOP (Dynamically Checking Ownership Policies) [33]. All three tools use a combination of static analysis and software instrumentation of memory accesses.…”
mentioning
confidence: 99%
See 1 more Smart Citation