JOURNAL BROWSE
Search
Advanced SearchSearch Tips
Teaching Process Synchronization with the Bank Account Problem
facebook(new window)  Pirnt(new window) E-mail(new window) Excel Download
 Title & Authors
Teaching Process Synchronization with the Bank Account Problem
Yang, Hee-Jae;
  PDF(new window)
 Abstract
Process synchronization is one of the most difficult subject for students learning the Operating System courses. It is due to the fact that concurrent process environment, where many events occur at the same time, is difficult to understand for ordinary human who thinks only one thing at a time. Classical synchronization examples like the Bounded buffer problem or the Dining philosopher problem fail to hook attention and interest from lower grade students who just begin to study the Operating System courses in college because these examples are either too technical or too unrealistic. In this paper we propose another synchronization example named the Bank account problem as an alternative to the classical ones. Bank account problem is proved to succeed getting high interest and understanding from the student as it is easy and realistic, and almost every student has the experience using bank account in real life. Various synchronization subjects including controlling the execution sequence of each process, incorrect result due to the race conditions, use of semaphores, deadlock, and monitor are considered to apply them to the Bank account problem.
 Keywords
process synchronization;concurrent process;multithread;computer education;operating system;
 Language
Korean
 Cited by
 References
1.
A. Silberschatz, P. B. Galvin, and G. Gagne, Operating System Concepts with Java, 8th edition, John Wiley & Sons, Inc., 2010

2.
W. Stallings, Operating Systems: Internals and Design Principles, 7th edition, Prentice Hall, 2011

3.
A. S. Tanenbaum and H. Bos, Modern Operating Systems, 4th edition, Prentice Hall, 2014

4.
A. D. Fekete, "Teaching about Threading: Where and What?", ACMSIGACT News, vol.40, no.1, pp.51-57, Mar 2009

5.
C-K Shene, "Multithreaded Programming Can Strengthen an Operating Systems Course", Computer Sci. Edu, vol.12, pp.275-299, 2002 crossref(new window)

6.
H. Jarvinen, M. Tiusanen, and A. Virtanen, "Convit, a Tool for Learning Concurrent Programming", Proc of World Conference on E-Learning in Corporate, Government, Healthcare, and Higher Education, pp.2220-2223, 2003

7.
R. Oechsle and T. Schmitt, "JAVAVIS: Automatic Program Visualization with Object and Sequence Diagrams Using the Java Debug Interface (JDI)", Lecture Notes In Computer Sci, vol. 2269, Springer-Verlag, pp.672-675, 2002

8.
K. Mehner, "JaVis: A UML-Based Visualization and Debugging Environment for Concurrent Java Programs", Lecture Notes In Computer Science, vol. 2269, Springer-Verlag, pp.163-175, 2002

9.
H. Leroux, A. Requile-Romanczuk, and C. Mingins, "JACOT: A Tool to Dynamically Visualise the Execution of Concurrent Java Programs," Proc of the 2nd International Conf on Principles and Practice of Programming in Java (PPPJ 2003), pp.201-206, 2003

10.
S. Carr, J. Mayo, and C-K Shene, "ThreadMentor: A Pedagogical Tool for Multithreaded Programming", ACM Journal on Educational Resources in Computing, Vol.3, No.1, 2003

11.
G. Malnati, C. M. Cuva, and C. Barberis, "JThreadSpy: Teaching Multithreading Programming by Analyzing Execution Traces", Proc of the 2007 ACM Workshop on Parallel and Distributed Systems: Testing and Debugging, pp.3-13, 2007

12.
S. Robbins, "Experimentation with Bounded Buffer Synchronization", Proc of the 31st SIGCSE Technical Symp on Computer Science Education, pp. 330-334, 2000

13.
W. Campbell and E. Bolker, "Teaching Programming by Immersion, Reading and Writing", Proc of 32nd ASEE/IEEE Frontiers in Education Conference, Boston, MA, Nov 2002

14.
G. Nutt, Operating Sustems - A Modern Perspective, 2nd ed., Addison-Wesley, 2002

15.
S. Oaks and H. Wong, Java Threads, O'Reilly & Assoc., Inc, 1997

16.
C. A. R. Hoare, "Monitors: An Operating System Structuring Concept", Communications of the ACM, Vol. 17, No. 10. pp.549-557, Oct 1974 crossref(new window)

17.
E. W. Dijkstra, "Cooperating Sequential Processes", Technological University, Eindhoven, The Netherlands, Sept 1965

18.
S. J. Hartley, "Alfonse, Wait Here For My Signal!", ACM SIGCSE, pp.58-62, Mar 1999

19.
Accreditation Board for Engineering Education of Korea, http://www.abeek.or.kr

20.
K. Kim, J.Song, and T. Lee, "Effect of Digital Storytelling based Programming Education on Motivation and Achievement of Students in Elementary school", J. of the Korea Society of Computer and Information, vol.14, no. 1, pp.47-55, Jan 2009