【24h】

The theory of deadlock avoidance via discrete control

机译:通过离散控制避免死锁理论

获取原文

摘要

Deadlock in multithreaded programs is an increasingly important problem as ubiquitous multicore architectures force parallelization upon an ever wider range of software. This paper presents a theoretical foundation for dynamic deadlock avoidance in concurrent programs that employ conventional mutual exclusion and synchronization primitives (e.g., multithreaded C/Pthreads programs). Beginning with control flow graphs extracted from program source code, we construct a formal model of the program and then apply Discrete Control Theory to automatically synthesize deadlock-avoidance control logic that is implemented by program instrumentation. At run time, the control logic avoids deadlocks by postponing lock acquisitions. Discrete Control Theory guarantees that the program instrumented with our synthesized control logic cannot deadlock. Our method furthermore guarantees that the control logic is maximally permissive: it postpones lock acquisitions only when necessary to prevent deadlocks, and therefore permits maximal runtime concurrency. Our prototype for C/Pthreads scales to real software including Apache, OpenLDAP, and two kinds of benchmarks, automatically avoiding both injected and naturally occurring deadlocks while imposing modest runtime overheads.
机译:多线程程序中的僵局是一个越来越重要的问题,因为普遍存在的多核架构强制并行化在更广泛的软件上。本文介绍了采用传统互排和同步基元的并发程序中动态死锁避免的理论基础(例如,多线程C / Pthreads程序)。从程序源代码中提取的控制流程开始,我们构建了一个程序的正式模型,然后应用离散控制理论以自动扫描由程序仪器实现的死锁避免控制逻辑。在运行时,控制逻辑通过推迟锁定采集来避免死锁。离散控制理论保证了通过我们合成的控制逻辑的程序进行了解锁的程序。我们的方法还保证了控制逻辑是最大限度的允许:它仅在必要时推迟锁定采集,以防止死锁,因此允许最大的运行时并发。我们的C / Pthreads的原型为Real软件,包括Apache,OpenLDAP和两种基准,自动避免在施加适度的运行时开销时避免注入和自然发生的死锁。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号