Abstract

Data races in multithread programs are representative software defects of accesses to shared memory locations caused by the interleaving of the concurrent threads. It is difficult to figure out whether a program runs into data races, because there are many possible executions of the program and a lot of the data races are hard to reproduce. Hence data races should be located with a range of automatic detectors employing sophisticated techniques for monitoring and analyzing the program executions. Unfortunately, we cannot merely depend only on the located results of a dynamic detector, since each dynamic detector exhibits different limitations even they provide significant advantages through each of their techniques. This paper presents the survey of advantages and limitations exhibited by representative four dynamic detectors based on synchronization primitives.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call