Automated, compositional and iterative deadlock detection

S. Chaki, E. Clarke, J. Ouaknine, N. Sharygina
{"title":"Automated, compositional and iterative deadlock detection","authors":"S. Chaki, E. Clarke, J. Ouaknine, N. Sharygina","doi":"10.1109/MEMCOD.2004.1459856","DOIUrl":null,"url":null,"abstract":"We present an algorithm to detect deadlocks in concurrent message-passing programs. Even though deadlock is inherently noncompositional and its absence is not preserved by standard abstractions, our framework employs both abstraction and compositional reasoning to alleviate the state space explosion problem. We iteratively construct increasingly more precise abstractions on the basis of spurious counterexamples to either detect a deadlock or prove that no deadlock exists. Our approach is inspired by the counterexample-guided abstraction refinement paradigm. However, our notion of abstraction as well as our schemes for verification and abstraction refinement differs in key respects from existing abstraction refinement frameworks. Our algorithm is also compositional in that abstraction, counterexample validation, and refinement are all carried out component-wise and do not require the construction of the complete state space of the concrete system under consideration. Finally, our approach is completely automated and provides diagnostic feedback in case a deadlock is detected. We have implemented our technique in the MAGIC verification tool and present encouraging results (up to 20 times speed-up in time and 4 times less memory consumption) with concurrent message-passing C programs. We also report a bug in the real-time operating system MicroC/OS version 2.70.","PeriodicalId":253853,"journal":{"name":"Proceedings. Second ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2004. MEMOCODE '04.","volume":"55 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2004-06-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"29","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings. Second ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2004. MEMOCODE '04.","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/MEMCOD.2004.1459856","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 29

Abstract

We present an algorithm to detect deadlocks in concurrent message-passing programs. Even though deadlock is inherently noncompositional and its absence is not preserved by standard abstractions, our framework employs both abstraction and compositional reasoning to alleviate the state space explosion problem. We iteratively construct increasingly more precise abstractions on the basis of spurious counterexamples to either detect a deadlock or prove that no deadlock exists. Our approach is inspired by the counterexample-guided abstraction refinement paradigm. However, our notion of abstraction as well as our schemes for verification and abstraction refinement differs in key respects from existing abstraction refinement frameworks. Our algorithm is also compositional in that abstraction, counterexample validation, and refinement are all carried out component-wise and do not require the construction of the complete state space of the concrete system under consideration. Finally, our approach is completely automated and provides diagnostic feedback in case a deadlock is detected. We have implemented our technique in the MAGIC verification tool and present encouraging results (up to 20 times speed-up in time and 4 times less memory consumption) with concurrent message-passing C programs. We also report a bug in the real-time operating system MicroC/OS version 2.70.
自动,组成和迭代死锁检测
提出了一种在并发消息传递程序中检测死锁的算法。尽管死锁本质上是非组合的,而且标准抽象也没有保留死锁的缺失,但我们的框架同时采用抽象和组合推理来缓解状态空间爆炸问题。我们在伪反例的基础上迭代地构建越来越精确的抽象,以检测死锁或证明不存在死锁。我们的方法受到反例引导的抽象细化范式的启发。然而,我们的抽象概念以及我们的验证和抽象细化方案在关键方面与现有的抽象细化框架不同。我们的算法也是组合的,因为抽象、反例验证和细化都是按组件方式进行的,不需要构建所考虑的具体系统的完整状态空间。最后,我们的方法是完全自动化的,并在检测到死锁时提供诊断反馈。我们已经在MAGIC验证工具中实现了我们的技术,并在并发消息传递的C程序中呈现了令人鼓舞的结果(时间上加速了20倍,内存消耗减少了4倍)。我们还报告了实时操作系统MicroC/OS 2.70版本中的一个错误。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约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学术官方微信