首页> 外文期刊>Science of Computer Programming >A lightweight deadlock analysis for programs with threads and reentrant locks
【24h】

A lightweight deadlock analysis for programs with threads and reentrant locks

机译:带有线程和可重入锁的程序的轻量级死锁分析

获取原文
获取原文并翻译 | 示例

摘要

Deadlock analysis of multi-threaded programs with reentrant locks is complex because these programs may have infinitely many states. We define a simple calculus featuring recursion, threads and synchronizations that guarantee exclusive access to objects. We detect deadlocks by associating an abstract model to programs - the extended lam model - and we define an algorithm for verifying that a problematic object dependency (e.g. a circularity) between threads will not be manifested.The analysis is lightweight because the deadlock detection problem is fully reduced to the corresponding one in lams (without using other models). In fact, the technique is intended to be an effective tool for the deadlock analysis of programming languages by defining ad-hoc extraction processes. We demonstrate this effectivity by applying our analysis to a core calculus featuring shared objects, threads and Java-like synchronization primitives. We also discuss a prototype verifier, called JaDA, that covers several features of Java and deliver initial assessments of the tool. (C) 2019 Elsevier B.V. All rights reserved.
机译:具有可重入锁的多线程程序的死锁分析非常复杂,因为这些程序可能具有无限多个状态。我们定义了一个简单的演算,具有递归,线程和同步功能,可确保对对象的独占访问。我们通过将抽象模型与程序(扩展的lam模型)相关联来检测死锁,并定义了一种算法来验证线程之间是否存在有问题的对象依赖性(例如,圆度)。该分析轻巧,因为死锁检测问题是完全减少到对应的1英尺(不使用其他型号)。实际上,该技术旨在通过定义即席提取过程来成为对编程语言进行死锁分析的有效工具。通过将我们的分析应用于具有共享对象,线程和类似Java的同步原语的核心演算中,我们证明了这种有效性。我们还将讨论称为JaDA的原型验证器,该验证器涵盖Java的多个功能并提供对该工具的初步评估。 (C)2019 Elsevier B.V.保留所有权利。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号