Font Size: a A A

Design And Implementation Of Static Detection Tool For Data Competition In Java Concurrent Programs

Posted on:2021-01-18Degree:MasterType:Thesis
Country:ChinaCandidate:W G CaoFull Text:PDF
GTID:2518306476460214Subject:Software engineering
Abstract/Summary:PDF Full Text Request
With the rise of cloud computing,big data,and the application of various distributed systems,concurrent programming has become increasingly popular.However,writing concurrent programs is error-prone.Data competition is a typical flaw in concurrent programs.It refers to multiple threads accessing shared memory variables at the same time without synchronization,and at least one of them has write access.Data competition often occurs in concurrent programs and is difficult to detect,hide deep,and difficult to reproduce.In order to ensure the stable and safe operation of the system,the internship company proposed to design a detection tool for detecting data competition problems in Java concurrent programs.Based on reading a large number of domestic and foreign literatures,this thesis proposes a static detection method that can detect data competition defects in Java concurrent programs through the comprehensive use of multiple static analysis techniques,and implements corresponding detection tools.First,use the soot analysis framework to convert the detected code into an easy-to-analyze Jimple intermediate form;Then,use control flow analysis and data flow analysis to model the program execution process and construct control flow graphs and function calls within and between threads Figure;Second,define and extract the memory access events of the variables in the thread;Then,use the data competition formation condition algorithm to perform the Cartesian product operation on the generated memory variable access event collection to determine the memory variable access events that may cause data competition.While judging data competition,concurrent analysis and alias analysis are performed on variable access events to reduce the false positive rate and false negative rate of the tool.Finally,this thesis designs and implements the detection tool,and selects eight programs containing data competition defects as experimental objects.After experimental verification,the tool in this thesis performs well in terms of false negative rate,false positive rate and detection efficiency,which can be effective detected data competition defects in Java concurrent programs.
Keywords/Search Tags:Java concurrency, data competition, static detection
PDF Full Text Request
Related items