【24h】

Atomizer

机译:喷雾器

获取原文

摘要

Ensuring the correctness of multithreaded programs is difficult, due to the potential for unexpected interactions between concurrent threads. Much previous work has focused on detecting race conditions, but the absence of race conditions does not by itself prevent undesired thread interactions. We focus on the more fundamental non-interference property of atomicity; a method is atomic if its execution is not affected by and does not interfere with concurrently-executing threads. Atomic methods can be understood according to their sequential semantics, which significantly simplifies (formal and informal) correctness arguments.This paper presents a dynamic analysis for detecting atomicity violations. This analysis combines ideas from both Lipton's theory of reduction and earlier dynamic race detectors. Experience with a prototype checker for multithreaded Java code demonstrates that this approach is effective for detecting errors due to unintended interactions between threads. In particular,our atomicity checker detects errors that would be missed by standard race detectors, and it produces fewer false alarms on benign races that do not cause atomicity violations. Our experimental results also indicate that the majority of methods in our benchmarks are atomic, supporting our hypothesis that atomicity is a standard methodology in multithreaded programming.
机译:由于并发线程之间可能发生意外交互,因此很难确保多线程程序的正确性。先前的许多工作都集中在检测竞争条件上,但是没有竞争条件本身并不能防止不必要的线程交互。我们将重点放在原子性的更基本的无干扰特性上;如果方法的执行不受并发执行的线程的影响,并且该方法不会干扰该方法的执行,则该方法是原子的。可以根据原子方法的顺序语义来理解原子方法,这可以大大简化(正式和非正式)正确性论证。本文提出了一种检测原子性违规的动态分析。该分析结合了Lipton的归约理论和较早的动态竞争检测器的思想。多线程Java代码原型检查器的经验表明,此方法可有效检测由于线程之间意外交互而导致的错误。特别是,我们的原子性检查器可以检测到标准种族检测器会遗漏的错误,并且在不会引起原子性违规的良性种族中产生较少的错误警报。我们的实验结果还表明,基准测试中的大多数方法都是原子的,这支持了我们的假设,即原子性是多线程编程中的一种标准方法。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号