Document Type
Article
Publication Title
SIGCSE 2019 - Proceedings of the 50th ACM Technical Symposium on Computer Science Education
Abstract
Classic synchronization problems are often used to introduce students to the subtleties of concurrency and synchronization mechanisms, such as semaphores, monitors, locks, and condition variables. The Dining Philosophers, Producers-Consumers, and Readers-Writers are all classic problems in which a correct solution requires the actions of multiple processes or threads to be synchronized. In this paper, we present visualizations for these three problems and describe their use as pedagogical tools to help students build accurate mental models of concurrency abstractions such as starvation, deadlock, livelock, and correct execution. We also present the results of an experiment that indicate students find using these visualizations to be significantly more engaging than reading a textbook, with no significant difference in learning. We do not claim that our visualizations should replace a course text; rather we present them as engaging pedagogical tools to complement the textbook in courses on Operating Systems, Programming Languages, and other courses where concurrency and synchronization are covered.
First Page
934
Last Page
940
DOI
https://doi.org/10.1145/3287324.3287467
Publication Date
Spring 3-2-2019
Recommended Citation
Adams, Joel C.; Koning, Elizabeth R.; and Hazlett, Christiaan D., "Visualizing classic synchronization" (2019). University Faculty Publications and Creative Works. 1.
https://digitalcommons.calvin.edu/calvin_facultypubs/1