Improving the accuracy of data race detection
PPOPP '91 Proceedings of the third ACM SIGPLAN symposium on Principles and practice of parallel programming
Race Frontier: reproducing data races in parallel-program debugging
PPOPP '91 Proceedings of the third ACM SIGPLAN symposium on Principles and practice of parallel programming
Detecting access anomalies in programs with critical sections
PADD '91 Proceedings of the 1991 ACM/ONR workshop on Parallel and distributed debugging
Concurrent programming
Multithreaded programming in an introduction to operating systems course
SIGCSE '98 Proceedings of the twenty-ninth SIGCSE technical symposium on Computer science education
Concurrent programming: the Java programming language
Concurrent programming: the Java programming language
Modern Operating Systems
Operating System Concepts
Operating Systems (5th Edition)
Operating Systems (5th Edition)
A case study of multi-threading in the embedded space
CASES '06 Proceedings of the 2006 international conference on Compilers, architecture and synthesis for embedded systems
Distributed Watchpoints: Debugging Large Modular Robot Systems
International Journal of Robotics Research
Hi-index | 0.00 |
Since detecting race conditions in a multithreaded or multiprocess program is an NP-complete problem, there is no efficient algorithm that can help detect race conditions in a program. As such, there are no easy-to-use pedagogical tools. Most operating systems and concurrent programming textbooks only provide a formal definition and some trivial examples. This is insufficient for students to learn how to detect race conditions. This paper attempts to fill this gap by presenting a set of well-organized examples, each of which contains one or more race conditions, for instructors to use in the classroom. This set of materials has been classroom tested for two years and the student's reaction has been very positive.