Using "must" and "may" summaries to detect data races in Java bytecode that does not rely on the synchronized construct

David A. W. Clarke, Tim Miller, Antonette Mendoza
{"title":"Using \"must\" and \"may\" summaries to detect data races in Java bytecode that does not rely on the synchronized construct","authors":"David A. W. Clarke, Tim Miller, Antonette Mendoza","doi":"10.1145/2811681.2811694","DOIUrl":null,"url":null,"abstract":"The Java Memory Model (JMM) offers significant guarantees of sequentially consistent behaviour where concurrent access to shared data is regulated by synchronisation. Using the Java synchronized construct incurs high overheads. Using other light-weight protocols for synchronization is much cheaper, though more prone to error. We propose a static analysis approach to detecting race conditions in such Java programs. Our approach analyses the use of shared variables within programs, and summarises these using must and may summaries. It compares these summaries across control-flow paths to determine whether a data race \"must\" exist or \"may\" exist, given some assumptions of program semantics. We evaluate our approach on a set of small programs using a prototype implementation, demonstrating that it is able to locate data races in a variety of different circumstances.","PeriodicalId":292017,"journal":{"name":"Proceedings of the ASWEC 2015 24th Australasian Software Engineering Conference","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2015-09-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the ASWEC 2015 24th Australasian Software Engineering Conference","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2811681.2811694","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 2

Abstract

The Java Memory Model (JMM) offers significant guarantees of sequentially consistent behaviour where concurrent access to shared data is regulated by synchronisation. Using the Java synchronized construct incurs high overheads. Using other light-weight protocols for synchronization is much cheaper, though more prone to error. We propose a static analysis approach to detecting race conditions in such Java programs. Our approach analyses the use of shared variables within programs, and summarises these using must and may summaries. It compares these summaries across control-flow paths to determine whether a data race "must" exist or "may" exist, given some assumptions of program semantics. We evaluate our approach on a set of small programs using a prototype implementation, demonstrating that it is able to locate data races in a variety of different circumstances.
使用“must”和“may”摘要来检测不依赖于同步构造的Java字节码中的数据竞争
Java内存模型(Java Memory Model, JMM)提供了顺序一致行为的重要保证,其中对共享数据的并发访问由同步调节。使用Java同步构造会带来很高的开销。使用其他轻量级协议进行同步要便宜得多,但更容易出错。我们提出了一种静态分析方法来检测此类Java程序中的竞争条件。我们的方法分析了程序中共享变量的使用,并使用must和may摘要对这些变量进行了总结。在给定一些程序语义假设的情况下,它跨控制流路径比较这些摘要,以确定数据竞争是“必须”存在还是“可能”存在。我们在一组使用原型实现的小程序上评估了我们的方法,证明它能够在各种不同的环境中定位数据竞争。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信