首页> 外文学位 >Dataflow analysis for concurrent programs using data-race detection.
【24h】

Dataflow analysis for concurrent programs using data-race detection.

机译:使用数据争用检测对并发程序进行数据流分析。

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

摘要

Dataflow analyses are a critical part of many optimizing compilers as well as bug-finding and program-understanding tools. However, many dataflow analyses are not designed for concurrent programs.;Dataflow analyses for concurrent programs differ from their single-threaded counterparts in that they must account for shared memory locations being overwritten by concurrent threads. Existing dataflow analysis techniques for concurrent programs typically fall at either end of a spectrum: at one end, the analysis conservatively kills facts about all data that might possibly be shared by multiple threads; at the other end, a precise thread-interleaving analysis determines which data may be shared, and thus which dataflow facts must be invalidated. The former approach can suffer from imprecision, whereas the latter does not scale.;This dissertation presents a framework called RADAR, which automatically converts a dataflow analysis for sequential programs into one that is correct for concurrent programs. With RADAR, the vast body of work in designing dataflow analyses for sequential programs can be reused in the concurrent setting.;RADAR uses a race detection engine to kill the dataflow facts -- generated and propagated by the sequential analysis -- that become invalid due to concurrent writes. This approach of factoring all reasoning about concurrency into a race detection engine yields two benefits. First, to obtain analyses for code using new concurrency constructs, there is no need to update each individual analysis; instead, one need only design a suitable race detection engine for the constructs. Second, it gives analysis designers an easy way to tune the scalability and precision of the overall analysis by only modifying the race detection engine or swapping in a different one.;This dissertation describes the RADAR framework and its implementation using a race detection engine called RELAY. RELAY is designed to be a pushbutton solution, and is designed to analyze independent portions of programs in parallel. Combined with R ELAY, RADAR is capable of analyzing large C programs, including the Apache web server and a subset of the Linux kernel, in a reasonable time budget. We compare the results of RADAR to reasonable upper and lower bounds, and show that it is effective in generating concurrent versions of a null-pointer dereference analysis as well as several traditional compiler-oriented dataflow analyses.
机译:数据流分析是许多优化编译器以及错误查找和程序理解工具的关键部分。但是,许多数据流分析不是为并发程序设计的。并发程序的数据流分析与单线程对应程序的不同之处在于,它们必须考虑被并发线程覆盖的共享内存位置。现有的用于并发程序的数据流分析技术通常落在频谱的两端:一方面,分析保守地杀死了可能由多个线程共享的所有数据的事实;另一方面,精确的线程交织分析确定可以共享哪些数据,因此必须使哪些数据流事实无效。前一种方法可能存在不精确性,而后者则无法扩展。本论文提出了一种名为RADAR的框架,该框架可将顺序程序的数据流分析自动转换为对并发程序正确的分析。借助RADAR,可以在并发设置中重用为顺序程序设计数据流分析的大量工作; RADAR使用竞争检测引擎杀死由顺序分析生成和传播的数据流事实,这些事实由于以下原因而变得无效并发写入。这种将所有有关并发性因素分解为竞争检测引擎的方法产生了两个好处。首先,要使用新的并发结构获取代码分析,就无需更新每个单独的分析;取而代之的是,只需要为结构设计一个合适的种族检测引擎即可。其次,它为分析设计人员提供了一种简单的方法,只需修改种族检测引擎或在另一个交换引擎中进行交换,即可调整整个分析的可扩展性和精度。本文介绍了RADAR框架及其使用种族检测引擎RELAY的实现。 。 RELAY被设计为按钮式解决方案,旨在并行分析程序的独立部分。与R ELAY结合使用时,RADAR能够在合理的时间预算内分析大型C程序,包括Apache Web服务器和Linux内核的子集。我们将RADAR的结果与合理的上限和下限进行了比较,并表明它可有效地生成并发版本的空指针解除引用分析以及一些传统的面向编译器的数据流分析。

著录项

  • 作者

    Voung, Jan Wen.;

  • 作者单位

    University of California, San Diego.;

  • 授予单位 University of California, San Diego.;
  • 学科 Computer Science.
  • 学位 Ph.D.
  • 年度 2010
  • 页码 158 p.
  • 总页数 158
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类
  • 关键词

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号