Work in progress - developing an interactive visualization tool in teaching synchronization principles
Bo Hatfield, M. Zhang, Lan Jin · 2005
Synchronization is a very important concept in computer science and engineering. It is a required topic in courses of various levels concerning operating systems, system programming, uniprocessor/multiprocessor systems, distributed systems, computer networks, and databases. Nevertheless, due to the dynamic nature of the computing events involved, synchronization is difficult for instructors to teach and difficult for students to understand. The proposed work is intended to develop an interactive visualization software tool that can be used to (1) demonstrate the existence of synchronization problems and (2) illustrate the principles and workings of the synchronization techniques used to solve those problems. The tool, implemented in Java, allows the user to dynamically configure a synchronization environment. The user can choose one of several synchronization techniques, such as binary semaphores, counting semaphores, or monitors, to remedy a problem. Similarly, the synchronization of the interacting processes is animated.