Race That Never Ends

In modern computer systems, “concurrent programming” is a never-ending necessity to boost processing speed, thereby achieving the best possible performance. The major drawback of concurrent programming is that it introduces more errors (that are difficult to be identified) than sequential programming, and for this purpose, it is very essential to have tools that can discover such errors. In order to decide the appropriate tool, one must learn about the strengths and weaknesses of the available dynamic analysis tools and then choose the most appropriate. A study has been carried out to assess which among the current dynamic analysis tools cater to detecting these race conditions. However, the study reveals poor detection capability by the tools; hence, prevention by coding standards is imperative. As the saying goes, there are “No silver bullets,” to race condition issues. They have been and continue to be around us. The only law that must be followed is: “Proper ordering maintained between operating system and program order.”