Improvement and comparison the performance of fuzzing testing algorithms for applications in Google Thread Sanitizer
Annotation
It is difficult to imagine modern information systems without the use of multithreading. The use of multithreading can both improve the performance of the system as in whole so as slow down the execution of multithreaded applications due to the occurrence of multithreaded programming errors. To find such errors in C/C++ languages, there exists a Google Thread Sanitizer compiler module. The order of execution of threads can change every time the program is started for execution and can affect the appearance of such errors. To repeatedly change the order of execution of threads during the execution of the program, Google Thread Sanitizer has a fuzzing testing module that allows you to increase the probability of finding errors. But all the thread scheduling algorithms in this module are presented in the form of sequential execution of threads which can lead to a significant slowdown in Google Thread Sanitizer as well as can affect the testing of applications that depends on timers (waiting for network events, deadline for operations, ...). To speed up the work of fuzzing schedulers, a method for parallelizing independent transitions is proposed. From the point of view of multithreaded programming errors, it is only important to change the shared state between threads, and local calculations do not affect the reproduction of multithreaded errors. The changes of shared states themselves occur at synchronization points (places in the code where threads are switched according to the principle of cooperative multitasking). The method suggests ordering only the change of shared states at synchronization points, and performing local calculations in parallel, due to which parallelization is achieved. For the analysis of theoretical complexity of the algorithm, the method of combinatorial counting is used. A new approach to the organization of fuzzing testing based on the method of parallelization of independent transitions is proposed the implementation of which, according to theoretical and practical estimates, shows a noticeable acceleration of the work of fuzzing schedulers. According to the results of the experiment, it was revealed that for the algorithm of iterating through all execution variants, the acceleration of execution reaches 1.25 times for two threads. For an arbitrary number of threads, an estimate is presented in the form of a formula. The proposed approach allows fuzzing tests to cover multithreaded applications for which execution time is important — applications with reference to timers which improve the quality of the software.
Keywords
Постоянный URL
Articles in current issue
- Investigation of congruent lithium niobate crystal dispersion properties in the terahertz frequency range
- Polarization extinction ratio in polarization maintaining fiber sealed with glass solder
- Method for remote control of radiation parameters of spacecraft based on X-ray fluorescence analysis
- Fiber-optic amplitude bend direction and magnitude sensor
- Compensation of external disturbances for MIMO systems with control delay
- Building cryptographic schemes based on elliptic curves over rational numbers
- An algorithm for generating design solutions for data and design-production procedures management at the stages of the lifecycle of an electronic product
- Karin S.A., Karin A.I.A method for improving the efficiency of integrated processing of Earth remote sensing data in solving problems of spatial objects monitoring
- Development of a model for detecting network traffic anomalies in distributed wireless ad hoc networks
- Applying the FN-corrector to improve the quality of audio event classification
- Strengthening the role of microarchitectural stages of embedded systems design
- A multivariate binary decision tree classifier based on shallow neural network
- A method for protecting neural networks from computer backdoor attacks based on the trigger identification
- Software development system for creation adaptive user interfaces
- Light weight recommendation system for social networking analysis using a hybrid BERT-SVM classifier algorithm
- A method of detecting information security incidents based on anomalies in the user’s biometric behavioral characteristics
- Modeling of random processes based on Karhunen-Loeve decomposition
- Numerical dissipation control of a hybrid large-particle method in vortex instability problems
- Numerical model of a pulsed subcritical streamer microwave discharge for problems of plasma ignition of fuel mixtures in the gas phase
- Numerical study on the straight, helical and spiral capillary tube for the CO2 refrigerant
- Information reconstruction from noisy channel using ghost imaging method with spectral multiplexing in visible range