高级检索

    多线程程序数据竞争的静态检测

    Static Data-Race Detection for Multithread Programs

    • 摘要: 多线程并发程序的广泛使用带来了更多的数据竞争错误.传统的数据竞争静态检测由于对并发语义和别名信息的保守分析会导致很多假错误.因此,提出了一个精确有效的静态检测框架:分析应用了精确的别名分析并静态模拟了访问事件发生序;为提高分析效率,检测算法提出了一个以对象为中心,结合Escape分析缩小检测范围的检测算法并配合设计了压缩的别名等价类表示.检测框架在一个静态Java编译器JTool上做了实现,对于测试程序取得了很好的分析结果.

       

      Abstract: Multithreaded concurrent programs are finding wide application, which brings more detrimental data race errors. Traditional static race detection methods are bothered by false positives caused by conservative analysis of concurrent semantics and alias info. In this paper, a precise and effective analysis framework is proposed. The framework applies precise alias analysis and simulates the happen-before order statically. To improve efficiency, an object-based race checker is proposed and compact equality-class-based alias representation is designed. The framework is implemented in a Java compiler—JTool. Through empirical results, the precision and effectiveness of the proposed algorithm are demonstrated.

       

    /

    返回文章
    返回