Font Size: a A A

Research Of Data Race Detection In Concurrent Programs

Posted on:2020-10-25Degree:MasterType:Thesis
Country:ChinaCandidate:Y N LiangFull Text:PDF
GTID:2428330572457129Subject:Computer Science and Technology
Abstract/Summary:PDF Full Text Request
The prevalence of multi-core processors has led to an increasing demand for multi-threaded concurrent programs,which plays an indispensable role in improving CPU utilization.Although the Java programming language provides powerful support for the design of multi-threaded concurrent programs,the concurrency and uncertainty within concurrent programs still introduces some inevitable flaws.Concurrency defects mainly include deadlock,data race,atomic violation,and sequence violation,and they all have features that are difficult to detect,debug,and repair.Data race accounts for a large proportion of all concurrent defects and is often the root cause of other non-deadlock concurrency defects.In view of the false positives and false negatives in the process of data race detection,this paper further studies the causes of false positives and false negatives,and presents a static data race detection method to reduce false positives and false negatives in data race detection.Intra-thread and inter-thread function call graphs are constructed by control flow analysis,and then variable access events are collected as the center of detection process.Possible races are detected based on the defined data race conditions.In order to improve the accuracy,alias variables and alias locks are analyzed to reduce the false negatives and false positives,respectively.The sequential relationship of access events is obtained through control flow analysis,and the principle of program slicing is used to determine the happens-before relationship of the access events,thereby reducing false positives caused by thread interactions.A data race detection tool was implemented by Java and Soot framework in the Eclipse PDE.In the experimentation,several benchmarks from the JGF and IBM Contest benchmark suites,such as raytracer or airline,were selected for evaluation,and the results were compared with existing data race detection methods(HB and RVPredict).The experimental results show that the proposed method can effectively avoid some false positives and false negatives.
Keywords/Search Tags:Concurrent programs, Java, Data race, Happens-before, Control flow
PDF Full Text Request
Related items