Assuring and evolving concurrent programs: annotations and policy

Aaron Greenhouse, W. Scherlis
{"title":"Assuring and evolving concurrent programs: annotations and policy","authors":"Aaron Greenhouse, W. Scherlis","doi":"10.1145/581339.581395","DOIUrl":null,"url":null,"abstract":"Assuring and evolving concurrent programs requires understanding the concurrency-related design decisions used in their implementation. In Java-style shared-memory programs, these decisions include which state is shared, how access to it is regulated, the roles of threads, and the policy that distinguishes desired concurrency from race conditions. We use case studies from production Java code to explore the costs and benefits of a new annotation-based approach for expressing design intent. Our intent is both to assist in establishing \"thread safety\" attributes in code and to support tools that safely restructure code. The annotations we use express \"mechanical\" properties such as lock-state associations, uniqueness of references, and encapsulation of state into named aggregations. Our analyses revealed race conditions in our case study samples, drawn from open-source projects and library code. The novel technical features of this approach include (1) flexible encapsulation via aggregations of state that can cross object boundaries, (2) the association of locks with state aggregations, (3) policy descriptions for allowable method interleavings, and (4) the incremental process for inserting, validating, and exploiting annotations.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"35 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"47","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/581339.581395","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 47

Abstract

Assuring and evolving concurrent programs requires understanding the concurrency-related design decisions used in their implementation. In Java-style shared-memory programs, these decisions include which state is shared, how access to it is regulated, the roles of threads, and the policy that distinguishes desired concurrency from race conditions. We use case studies from production Java code to explore the costs and benefits of a new annotation-based approach for expressing design intent. Our intent is both to assist in establishing "thread safety" attributes in code and to support tools that safely restructure code. The annotations we use express "mechanical" properties such as lock-state associations, uniqueness of references, and encapsulation of state into named aggregations. Our analyses revealed race conditions in our case study samples, drawn from open-source projects and library code. The novel technical features of this approach include (1) flexible encapsulation via aggregations of state that can cross object boundaries, (2) the association of locks with state aggregations, (3) policy descriptions for allowable method interleavings, and (4) the incremental process for inserting, validating, and exploiting annotations.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
保证并发程序的发展:注释和策略
确保和发展并发程序需要理解在其实现中使用的与并发相关的设计决策。在java风格的共享内存程序中,这些决策包括哪些状态是共享的、如何规范对状态的访问、线程的角色以及区分期望并发性和竞争条件的策略。我们使用产品Java代码中的案例研究来探索用于表达设计意图的基于注释的新方法的成本和收益。我们的目的是帮助在代码中建立“线程安全”属性,并支持安全重构代码的工具。我们使用的注释表达了“机械”属性,如锁状态关联、引用的唯一性以及将状态封装为命名聚合。我们的分析在我们的案例研究样本中揭示了竞争条件,这些样本来自开源项目和库代码。这种方法的新技术特征包括:(1)通过可以跨越对象边界的状态聚合灵活封装,(2)锁与状态聚合的关联,(3)允许的方法交叉的策略描述,以及(4)插入、验证和利用注释的增量过程。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
The CommUnity Workbench Tutorial: introduction to the Rational Unified Process/sup /spl reg// Hyper/J/spl trade/: multi-dimensional separation of concerns for Java/spl trade/ Detection of conflicting functional requirements in a use case-driven approach Visualization of test information to assist fault localization
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1