DOI QR코드

DOI QR Code

은행계좌 문제를 사용한 프로세스 동기화 교육

Teaching Process Synchronization with the Bank Account Problem

  • Yang, Hee-Jae (School of Computer Engineering, Kyungsung University)
  • 투고 : 2014.08.26
  • 심사 : 2014.11.10
  • 발행 : 2014.12.31

초록

프로세스 동기화는 학생들이 운영체제 과목에서 가장 어려워하는 주제 중 하나이다. 한 번에 한 가지만을 생각하는 인간의 특성 상 여러 사건이 동시에 일어나는 병행 프로세스 환경을 이해하기 어렵기 때문이다. 유한버퍼 문제나 식사하는 철학자 문제 등 고전적 동기화 예제는 그 내용이 너무 기술적이거나 비현실적이기 때문에 운영체제를 처음 접하는 저학년 학생들의 관심과 이해를 이끌기 어려웠다. 본 논문에서는 이러한 고전적 동기화 예제의 대안으로 은행계좌 문제의 사용을 제안한다. 은행계좌 문제는 쉽고 현실적이며 일상생활에서 누구나 경험해 본 문제이기 때문에 학생들의 높은 이해와 흥미를 이끌 수 있었다. 프로세스 실행 순서의 제어, 경쟁조건으로 인한 잘못된 결과의 발생, 세마포어 사용, 교착상태, 모니터 등 다양한 동기화 주제에 대한 은행계좌 문제의 적용에 대해 연구하였다.

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.

키워드

참고문헌

  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 https://doi.org/10.1076/csed.12.4.275.8624
  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 https://doi.org/10.1145/355620.361161
  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