【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原型可扩展到包括Apache,OpenLDAP和两种基准测试在内的真实软件,可自动避免注入的死锁和自然发生的死锁,同时会增加适度的运行时开销。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号