A study of common pitfalls in simple multi-threaded programs

  • Authors:
  • Sung-Eun Choi;E. Christopher Lewis

  • Affiliations:
  • Los Alamos National Laboratory, Advanced Computing Laboratory, P.O. Box 1663, MS B287, Los Alamos, NM;Department of Computer Science & Engineering, University of Washington, Box 352350, Seattle, WA

  • Venue:
  • Proceedings of the thirty-first SIGCSE technical symposium on Computer science education
  • Year:
  • 2000

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.