Font Size: a A A

Dynamic Detection Of Data Race Fault In Multi-threaded Program

Posted on:2010-06-07Degree:MasterType:Thesis
Country:ChinaCandidate:P WeiFull Text:PDF
GTID:2178360275479444Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
With the support of multi-threaded operating system and the popularity of multi-core processor technology, multi-threading technology is no longer the subject of a very distant. We enjoy the convenience that writing with Microsoft Word or browsing by Netscape Firefox, but also want to build their multi-threaded applications, but multi-threaded programming is relatively traditional programming design which is still very difficult and error-prone, In multi-threaded programming, it is easy to rise because there is no protection mechanism in order to synchronize the data lead to date race fault, however, the fault is difficult to run through one or two times and found, and even if the fault has been found, the debug information for the fault is also very difficult to obtain. Therefore, studying how to effectively test multi-threaded program and give programmers effective fault information is a very worthwhile research.At present, there are many experts and scholars make a lot of work in detection of data race fault, lockset algorithm which use to detect data race fault in the mainstream of practice, which derived from the lockset algorithm such as Racer algorithm and Goodlock algorithm. As a result of lockset-based detection algorithm use dynamic testing methods, which need to run the test program, therefore, this paper introduces the technical aspect-oriented programming (AOP, Aspect Oriented Programming), treatment of test program to set up the pointcut for online monitoring the test program's state and through the pointcut to more accurate gain run-time data. Defining the variable state graphic and variable set for the lockset algorithm effectively supplement and designing the variable sate graphic and lockset based dynamic data race fault detection algorithm. The main work is as follows:(1) The research on the AOP technology in the process of dynamic testingResearch on the AOP techniques such as its principles, characteristics and functions,especially the technical in the setting up pointcut, including setting up pointcut on methods or variable's constructor, as well as dynamic testing procedures applied in such a manner.(2) The research on lockset based dynamic data race fault detection algorithmDefinition of variable set and variable state graphic, through the variable set so thatthe original detection algorithm to support the detection of the variable assignment at run time which is dynamic memory variables, through the variable state graphic so that the original detection algorithm to reduce fake alarm rate, on the basis of variable state graphic and variable set, this paper designed the variable sate graphic and lockset based dynamic data race fault detection algorithm. This algorithm reduced the occurrence of fake alarm, so that more effective detection. Given the multi-threaded program dynamic data race fault detection system framework.(3) Experimental verification and analysisUse AspectJ to complete the setting up pointcut on test program and receiving the event by pointcut, using of Java and AspectJ to achieve a multi-threaded data race fault detection system prototype. Multi-threaded access to variables (including read and write operations) as an example, the method used in this paper which is multi-threaded data race detection method through experiments that found the method compared with original lockset algorithm that a reduction of fake alarm, making detection more effective, and provided the original lockset algorithm can not provide information on the fault at the scene.
Keywords/Search Tags:Data race, Aspect-Oriented Programming, Variable State Graphic, Variable Set, Lockset algorithm, Dynamic Detection
PDF Full Text Request
Related items