使用静态分析的java库死锁检测

Vivek K. Shanbhag
{"title":"使用静态分析的java库死锁检测","authors":"Vivek K. Shanbhag","doi":"10.1109/APSEC.2008.68","DOIUrl":null,"url":null,"abstract":"Well-written Java programs that conform to the Language and the J2SE-API Specifications can surprisingly deadlock their hosting JVM. Some of these deadlocks result from the specific manner in which the library implementations (incorrectly) lock their shared objects. Properly fixing them can require corrections in the J2SE-source. We use static-analysis to fetch a list of such potential deadlock scenarios stemming from the library, and use it to drive focused investigation into its source. This can help improve the reliability of the Library-design and implementation. A related reliability-metric can also be designed for objective comparison of update-releases to avoid regression (in maintenance-releases) of large Java libraries. The focus of this investigation is to identify, and thereby, help remove deadlock-possibilities in the Java-Library. An initial prototype implementation of our approach has already helped detect a deadlock in the JDK1.5 Annotation API.","PeriodicalId":218839,"journal":{"name":"2008 15th Asia-Pacific Software Engineering Conference","volume":"100 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2008-12-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"23","resultStr":"{\"title\":\"Deadlock-Detection in Java-Library Using Static-Analysis\",\"authors\":\"Vivek K. Shanbhag\",\"doi\":\"10.1109/APSEC.2008.68\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Well-written Java programs that conform to the Language and the J2SE-API Specifications can surprisingly deadlock their hosting JVM. Some of these deadlocks result from the specific manner in which the library implementations (incorrectly) lock their shared objects. Properly fixing them can require corrections in the J2SE-source. We use static-analysis to fetch a list of such potential deadlock scenarios stemming from the library, and use it to drive focused investigation into its source. This can help improve the reliability of the Library-design and implementation. A related reliability-metric can also be designed for objective comparison of update-releases to avoid regression (in maintenance-releases) of large Java libraries. The focus of this investigation is to identify, and thereby, help remove deadlock-possibilities in the Java-Library. An initial prototype implementation of our approach has already helped detect a deadlock in the JDK1.5 Annotation API.\",\"PeriodicalId\":218839,\"journal\":{\"name\":\"2008 15th Asia-Pacific Software Engineering Conference\",\"volume\":\"100 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2008-12-03\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"23\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2008 15th Asia-Pacific Software Engineering Conference\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/APSEC.2008.68\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2008 15th Asia-Pacific Software Engineering Conference","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/APSEC.2008.68","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 23

摘要

符合语言和J2SE-API规范的编写良好的Java程序可以意外地死锁它们的托管JVM。其中一些死锁是由于库实现(不正确地)锁定其共享对象的特定方式造成的。正确地修复它们可能需要在j2se源代码中进行更正。我们使用静态分析从库中获取此类潜在死锁场景的列表,并使用它对其来源进行重点调查。这有助于提高库设计和实现的可靠性。还可以为更新版本的客观比较设计相关的可靠性度量,以避免大型Java库的回归(在维护版本中)。本研究的重点是识别并因此帮助消除java库中的死锁可能性。我们方法的初始原型实现已经帮助检测了JDK1.5 Annotation API中的死锁。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Deadlock-Detection in Java-Library Using Static-Analysis
Well-written Java programs that conform to the Language and the J2SE-API Specifications can surprisingly deadlock their hosting JVM. Some of these deadlocks result from the specific manner in which the library implementations (incorrectly) lock their shared objects. Properly fixing them can require corrections in the J2SE-source. We use static-analysis to fetch a list of such potential deadlock scenarios stemming from the library, and use it to drive focused investigation into its source. This can help improve the reliability of the Library-design and implementation. A related reliability-metric can also be designed for objective comparison of update-releases to avoid regression (in maintenance-releases) of large Java libraries. The focus of this investigation is to identify, and thereby, help remove deadlock-possibilities in the Java-Library. An initial prototype implementation of our approach has already helped detect a deadlock in the JDK1.5 Annotation API.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
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学术官方微信