Font Size: a A A

Data Race Detection For Java Bytecode In Multithread Programs And Tool Implementation

Posted on:2015-03-06Degree:MasterType:Thesis
Country:ChinaCandidate:P Z ShiFull Text:PDF
GTID:2308330479489914Subject:Computer technology
Abstract/Summary:PDF Full Text Request
With the gradual expansion of the size of computer systems, the number of users is increasing continuously, and many software systems need to consider the concurrency. Nowadays, the multithreading technology is a common way to realize the concurrency. However, the multithreaded application developoment is difficult, and the programs run randomly during the thread switching. It is more prone to have problems. Data race is a common concurrency problem in multithreaded programmi-ng. The data race means many threads access a shared memory resource at the same time without ordering constraints enforced between them, and at least one access is a write. Data race problem can bring a lot of bugs in software, and sometimes it will be a huge disaster. In order to solve the data race problem, many researchers use the formal method to detect the data race problems. Data race detection is classified as either static or dynamic. Static race detectors have false results, while dynamic race detectors are running slowly and can’t detect all paths. In this thesis, a method of detecting data race in Java bytecodes is proposed. The main contributions of my work are summarized as follows:By analyzing the bytecode files, the abstract model of the program is built, and some key information about the program analysis is extracted. On the basis of bytecode instructions analyzing, it is used the data flow analysis method to propose a way of building the control flow graph and the call graph about the bytecode instructions.According to the conditions of the data race problem, it is summarized a way to detect data race problem based on bytecode instructions. By using alias analysis method, it is found three steps in the process, and they are reachable analysis, alias analysis and lockset analysis. By using these steps, an effective data race detection method is built.To verify the validity of the method, the method which is named data race detection based on bytecode is implemented by using a programming language. Experiments show that the tool runs efficiently compared with the method based on the source code. And it can find the data race problem correctly.
Keywords/Search Tags:program analysis, data race, multi-threading, static analysis, bytecode
PDF Full Text Request
Related items