Operating system concepts (3rd ed.)
Operating system concepts (3rd ed.)
ATOM: a system for building customized program analysis tools
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
ICS '90 Proceedings of the 4th international conference on Supercomputing
Eraser: a dynamic data race detector for multithreaded programs
ACM Transactions on Computer Systems (TOCS)
SMARTS: exploiting temporal locality and parallelism through vertical execution
ICS '99 Proceedings of the 13th international conference on Supercomputing
Concurrency, objects and visualisation
ACSE '00 Proceedings of the Australasian conference on Computing education
PortOS: an educational operating system for the Post-PC environment
SIGCSE '02 Proceedings of the 33rd SIGCSE technical symposium on Computer science education
Speculative lock elision: enabling highly concurrent multithreaded execution
Proceedings of the 34th annual ACM/IEEE international symposium on Microarchitecture
ThreadMentor: a pedagogical tool for multithreaded programming
Journal on Educational Resources in Computing (JERIC)
Design and Evaluation of a Diagrammatic Notation to Aid in the Understanding of Concurrency Concepts
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Teaching students to develop thread-safe java classes
Proceedings of the 13th annual conference on Innovation and technology in computer science education
Assessing the benefits of synchronization-adorned sequence diagrams: two controlled experiments
Proceedings of the 4th ACM symposium on Software visualization
A Case Study in Tightly Coupled Multi-paradigm Parallel Programming
Languages and Compilers for Parallel Computing
Teaching about threading: where and what?
ACM SIGACT News
Design and evaluation of extensions to UML sequence diagrams for modeling multithreaded interactions
Information Visualization
Practical parallel and concurrent programming
Proceedings of the 42nd ACM technical symposium on Computer science education
Workshop on transitioning to multicore: (TMC 2011)
Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
Workshop on transitioning to multicore (TMC 2011): overview abstract
Proceedings of the compilation of the co-located workshops on DSM'11, TMC'11, AGERE!'11, AOOPES'11, NEAT'11, & VMIL'11
ICA3PP'05 Proceedings of the 6th international conference on Algorithms and Architectures for Parallel Processing
Hi-index | 0.00 |
It is generally acknowledged that developing correct multi-threaded codes is difficult, because threads may interact with each other in unpredictable ways. The goal of this work is to discover common multi-threaded programming pitfalls, the knowledge of which will be useful in instructing new programmers and in developing tools to aid in multi-threaded programming. To this end, we study multi-threaded applications written by students from introductory operating systems courses. Although the applications are simple, careful inspection and the use of an automatic race detection tool reveal a surprising quantity and variety of synchronization errors. We describe and discuss these errors, evaluate the role of automated tools, and propose new tools for use in the instruction of multi-threaded programming.