当前位置: X-MOL 学术Arab. J. Sci. Eng. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Detecting Deadlocks Involving Diverse Synchronization Mechanisms Using Extended Petri Nets
Arabian Journal for Science and Engineering ( IF 2.6 ) Pub Date : 2016-12-09 , DOI: 10.1007/s13369-016-2367-0
Yunkai Du , Naijie Gu , Huaxiong Cao

Synchronization mechanisms provide flexibility for concurrent programming. However, they also increase the difficulty of deadlock detection, since detection methods have to consider deadlocks caused by different mechanisms and their attributes. Traditional deadlock detection techniques are for deadlocks that involve a few types of synchronization mechanisms, typically mutex only. This paper introduces extensions of Petri nets, called Attribute Petri nets (APNs), which focus on modelling most kinds of synchronization mechanisms and their attributes. APNs are constructed in a modular way; therefore, new synchronization mechanisms can be easily hooked to APNs, each of which is developed as an independent APNs plugin. A tool called SniperX has been developed to analyse C/C++ threaded programs that use the Pthreads (POSIX threads, a POSIX standard for threads), containing plugins for mutual exclusions, semaphores, barriers, condition variables, etc. We have applied it to some open source multithreaded systems and a large commercial system, finding several previously unknown deadlocks that involve multiple synchronization mechanisms.

中文翻译:

使用扩展Petri网检测涉及多种同步机制的死锁

同步机制为并发编程提供了灵活性。但是,由于检测方法必须考虑由不同机制及其属性引起的死锁,因此它们也增加了死锁检测的难度。传统的死锁检测技术用于涉及几种类型的同步机制(通常仅互斥)的死锁。本文介绍了Petri网的扩展,称为属性Petri网(APN),其重点是对大多数同步机制及其属性进行建模。APN以模块化方式构造;因此,可以轻松地将新的同步机制与APN挂钩,每种同步机制都是作为独立的APNs插件开发的。名为SniperX的工具 已开发用于分析使用Pthread(POSIX线程,POSIX线程标准)的C / C ++线程程序,其中包含用于互斥,信号量,障碍,条件变量等的插件。我们已将其应用于某些开源多线程系统和一个大型的商业系统,发现了几个以前未知的涉及多个同步机制的死锁。
更新日期:2016-12-09
down
wechat
bug