Exploiting purity for atomicity

IEEE Transactions on Software Engineering(2005)

引用 49|浏览0
暂无评分
摘要
Abstract—Multithreaded programs,often exhibit erroneous,behavior because,of unintended,interactions between,concurrent,threads. This paper focuses on the noninterference property of atomicity. A procedure is atomic if, for every execution, there is an equivalent serial execution,in which the actions of the atomic procedure,are not interleaved with actions of other threads. This key property makes atomic procedures amenable to sequential reasoning techniques, which significantly facilitates subsequent validation activities such as code,inspection and testing. Several existing tools verify atomicity by using commutativity,of actions to show,that every execution reduces to a corresponding serial execution. However, experiments with these tools have highlighted a number of interesting procedures that, while intuitively atomic, are not reducible. In this paper, we exploit the notion of pure code blocks to verify the atomicity of such irreducible procedures. If a pure block terminates normally, then its evaluation does not change the program state and, hence, these evaluation steps can be removed,from the program,trace before reduction. We develop,a static typed-based,analysis for atomicity based on this insight, and we illustrate this analysis on a number of interesting examples that could not be verified using earlier tools based,purely on reduction. Index Terms—Atomicity, purity, reduction, concurrent programs. 1I NTRODUCTION
更多
查看译文
关键词
multi-threading,program diagnostics,program testing,reasoning about programs,software tools,concurrent programs,multithreaded programs,noninterference atomicity property,program trace,pure code blocks,sequential reasoning techniques,static typed-based analysis,Index Terms- Atomicity,concurrent programs.,purity,reduction
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要