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