【24h】

Summarizing Procedures in Concurrent Programs

机译:汇总并发计划中的程序

获取原文

摘要

The ability to summarize procedures is fundamental to building scalable interprocedural analyses. For sequential programs, procedure summarization is well-understood and used routinely in a variety of compiler optimizations and software defect-detection tools. However, the benefit of summarization is not available to multithreaded programs, for which a clear notion of summaries has so far remained unarticulated in the research literature. In this paper, we present an intuitive and novel notion of procedure summaries for multithreaded programs. We also present a model checking algorithm for these programs that uses procedure summarization as an essential component. Our algorithm can also be viewed as a precise interprocedural dataflow analysis for multithreaded programs. Our method for procedure summarization is based on the insight that in well-synchronized programs, any computation of a thread can be viewed as a sequence of transactions, each of which appears to execute atomically to other threads. We summarize within each transaction; the summary of a procedure comprises the summaries of all transactions within the procedure. We leverage the theory of reduction to infer boundaries of these transactions. The procedure summaries computed by our algorithm allow reuse of analysis results across different call sites in a multithreaded program, a benefit that has hitherto been available only to sequential programs. Although our algorithm is not guaranteed to terminate on multithreaded programs that use recursion (reachability analysis for multithreaded programs with recursive procedures is unde-cidable), there is a large class of programs for which our algorithm does terminate. We give a formal characterization of this class, which includes programs that use shared variables, synchronization, and recursion.
机译:总结程序的能力是构建可扩展性地区分析的基础。对于顺序程序,程序摘要很好地理解,并在各种编译器优化和软件缺陷检测工具中定期使用。然而,概述的好处无法对多线程计划没有提供,其中迄今为止在研究文献中迄今为止明确的摘要概念。在本文中,我们为多线程程序提供了直观和小说的程序摘要概念。我们还为这些程序提供了一种模型检查算法,这些程序使用程序摘要作为基本组件。我们的算法也可以被视为多线程程序的精确的移植数据流分析。我们的程序摘要方法基于洞察力,在良好同步的程序中,线程的任何计算都可以被视为一系列交易,每个事务都似乎由原子地执行到其他线程。我们总结了每笔交易;过程摘要包括程序内所有交易的摘要。我们利用减少的理论来推断出这些交易的推断。我们的算法计算的程序摘要允许在多线程程序中的不同呼叫站点上重用分析结果,其中迄今为止仅可用于顺序程序。虽然我们的算法不保证终止使用递归的多线程程序(具有递归程序的多线程程序的可达性分析是Unde-CIDable),但我们的算法终止了大类程序。我们提供此类的正式表征,包括使用共享变量,同步和递归的程序。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号