Static Data Race Detection for Concurrent Programs with Asynchronous Calls

被引:45
|
作者
Kahlon, Vineet [1 ]
Sinha, Nishant [1 ]
Kruus, Erik [1 ]
Zhang, Yun
机构
[1] NEC Labs, Princeton, NJ USA
关键词
Asynchronous Programs; Bootstrapping; Static Data Race Detection; Pointer analysis;
D O I
10.1145/1595696.1595701
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
A large number of industrial concurrent programs are being designed based on a model which combines threads with event-based communication. These programs consist of several threads which perform computation by dispatching tasks to other threads via asynchronous function calls. These asynchronous function calls are implemented using function objects, which are essentially wrappers containing a pointer to the function that should be executed on a particular thread with the corresponding arguments. In many cases, the arguments, in turn, contain function objects which serve as callbacks. Verifying such programs which involves reasoning about complex concurrency constructs comprising function pointers and callback functions is extremely tricky especially in the presence of recursion. In this paper, we present a fast and accurate static data race detection technique for multi-threaded C programs with asynchronous function calls and demonstrate its application to real-life software.
引用
收藏
页码:13 / 22
页数:10
相关论文
共 50 条
  • [31] Static dependency analysis for concurrent Ada 95 programs
    Chen, ZQ
    Xu, BW
    Zhao, JJ
    Yang, HJ
    [J]. RELIABLE SOFTWARE TECHNOLOGIES - ADA-EUROPE 2002, 2002, 2361 : 219 - 230
  • [32] Static slicing of concurrent object-oriented programs
    Zhao, JJ
    Cheng, JD
    Ushijima, K
    [J]. TWENTIETH ANNUAL INTERNATIONAL COMPUTER SOFTWARE & APPLICATIONS CONFERENCE (COMPSAC'96), PROCEEDINGS, 1996, 20 : 312 - 320
  • [33] A generic approach to the static analysis of concurrent programs with procedures
    Bouajjani, A
    Esparza, J
    Touili, T
    [J]. ACM SIGPLAN NOTICES, 2003, 38 (01) : 62 - 73
  • [34] Precise slicing of concurrent programsAn Evaluation of static slicing algorithms for concurrent programs
    Dennis Giffhorn
    Christian Hammer
    [J]. Automated Software Engineering, 2009, 16
  • [35] Verifying concurrent message-passing C programs with recursive calls
    Chaki, S
    Clarke, E
    Kidd, N
    Reps, T
    Touili, T
    [J]. TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS, PROCEEDINGS, 2006, 3920 : 334 - 349
  • [36] GT-Race: Graph Traversal Based Data Race Detection for Asynchronous Many-Task Parallelism
    Yu, Lechen
    Sarkar, Vivek
    [J]. EURO-PAR 2018: PARALLEL PROCESSING, 2018, 11014 : 59 - 73
  • [37] Race analysis of traces of asynchronous message-passing programs
    Tai, KC
    [J]. PROCEEDINGS OF THE 17TH INTERNATIONAL CONFERENCE ON DISTRIBUTED COMPUTING SYSTEMS, 1997, : 261 - 268
  • [38] From Concurrent Multi-clock Programs to Deterministic Asynchronous Implementations
    Potop-Butucaru, Dumitru
    Sorel, Yves
    de Simone, Robert
    Talpin, Jean-Pierre
    [J]. FUNDAMENTA INFORMATICAE, 2011, 108 (1-2) : 91 - 118
  • [39] From Concurrent Multi-clock Programs to Deterministic Asynchronous Implementations
    Potop-Butucaru, Dumitru
    de Simone, Robert
    Sorel, Yves
    Talpin, Jean-Pierre
    [J]. NINTH INTERNATIONAL CONFERENCE ON APPLICATION OF CONCURRENCY TO SYSTEM DESIGN, PROCEEDINGS, 2009, : 42 - 51
  • [40] Data Provenance Tracking for Concurrent Programs
    Lucia, Brandon
    Ceze, Luis
    [J]. 2015 IEEE/ACM INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION (CGO), 2015, : 146 - 156