期刊文献+

一种对象粒度的Java程序并发错误检测框架 被引量:1

OBJ-D:An Object-centric Concurrency Bug Detection Framework for Java
下载PDF
导出
摘要 由于多线程程序执行的复杂性和不确定性,Java程序中的并发错误难以被检测和修复.不变式检测方法作为目前最为有效的检测手段,采用提取正确程序行为的方式,能自动识别程序并发错误.但是,传统的不变式检测方法基于单个字段分析程序行为,不考虑程序中的关联变量间的依赖关系,所以无法检测多个关联变量引发的并发错误.针对这一问题,本文实现了一个对象粒度的不变式检测框架OBJ-D,基于对象操作分析程序行为.OBJ-D通过记录对象的读写依赖,能反映同一对象中多个变量间的依赖关系,为检测多变量并发错误创造了条件.测试表明,在不影响训练敏感度和性能开销的前提下,OBJ-D能同时有效检测单变量和多变量引发的并发错误,并只引入很少的假阳性. Due to the complexity of concurrent programming and the non-determinism in multithreaded applications, concurrency bugs are easy to create but very hard to locate and fix. Invariant-based concurrency bug detection tools are proposed to address this prob- lem, which diagnose concurrency bugs by learning invariants in applications and detecting the violations to invariants when concurren- cy bugs occur. However, start-of-the-art detectors can't capture multi-variable bugs because they record interleavings upon single vari- able. This paper proposes an object-level invariant-based concurrency bug detector, OBJ-D, for Java applications. By recording the interleavings upon objects, OBJ-D can analyze the data dependencies of correlated variables together. Our results show that OBJ-D can detect both single- and multi-variable concurrency bugs in Java applications, while introducing little false positives.
出处 《小型微型计算机系统》 CSCD 北大核心 2013年第6期1295-1300,共6页 Journal of Chinese Computer Systems
基金 国家核高基重大专项项目(2009ZX01036-001-003)资助
关键词 对象粒度 JAVA 多变量 不变式检测 程序并发错误 object granularity Java multi-variable invariant-based detection concurrency bugs
  • 相关文献

参考文献13

  • 1Yu J, Narayanasamy S. A case for an interleaving constrained shared-memory multi-processor[ C ]. International Symposium on Computer Architecture ,2009:325-336.
  • 2Shi Y ,Park S ,Yin Z,et al. DefUse:definition-use invariants for de- tecting concurrency and sequential bugs[ C]. Systems Programming Languages and Applications : Software for Humanity, 2010 : 160- 174.
  • 3SPECjvm2008 [ EB/OL]. www. spec. org/jvm,2008.
  • 4Lu S, Tucek J, Qin F, et al. AVIO: detecting atomicity violations via access interleaving invariants [ C ]. Architectural Support for Programming Languages and Operating Systems,2006:37-48.
  • 5Lucia B,Devietti J, Strauss K,et al. Atom-Aid:detecting and survi- ving atomicity violations [ C ]. International Symposium on Com- puter Architecture ,2008:277-288.
  • 6Lu S, Park S, Flu C, et al. MUVI: automatically inferring multi- variable access correlations and detecting related semantic and con- currency bugs [ C ]. Symposium on Operating Systems Principles, 2007 : 103-116.
  • 7Flanagan C,Qadeer S. A type and effect system for atomicity[ C]. Programming Language Design and Implementation, 2003: 338- 349.
  • 8Lu S,Park S, Seo E, et al. Learning from mistakes:a comprehen- sive study on real world concurrency bug characteristics[ C]. Archi- tectural Support for Programming Languages and Operating Sys- tems ,2008:329-339.
  • 9Nethereote N, Seward J. Valgrind: a framework for heavyweight dy- namic binary instrumentation [ C ]. Architectural Support for Pro- gramming Languages and Operating Systems,2006:89-100.
  • 10Apache harmony [ EB/OL ]. harmony, apache, org,2003.

引证文献1

相关作者

内容加载中请稍等...

相关机构

内容加载中请稍等...

相关主题

内容加载中请稍等...

浏览历史

内容加载中请稍等...
;
使用帮助 返回顶部