SIGCSE 2019 - Proceedings of the 50th ACM Technical Symposium on Computer Science Education
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.
Adams, Joel C.; Koning, Elizabeth R.; and Hazlett, Christiaan D., "Visualizing classic synchronization" (2019). University Faculty Publications. 1.