Monitor란? 프로세스 동기화를 구현하기 위해서 semaphore를 사용하는 것에는 몇 가지 문제가 있다. 우선 코딩하기가 쉽지 않고, 정확하게 작동한다는 것을 입증하기가 어렵다. 또한 한 번의 실수가 모든 시스템에 치명적인 영향을 미친다. V와 P의 순서를 바꾸어 쓰거나 P만 2번 쓴 경우 mutual exclusion이 깨지거나 deadlock 문제가 생길 수 있다. 이러한 문제를 해결하기 위해 사용하는 것이 Monitor이다. Monitor란 객체단위로 구성된 프로그램으로, 공유 데이터 멤버 변수와 그 변수들을 조작할 수 있는 함수들을 포함하고 있다. 모니터 내에서는 한 번에 하나의 프로세스만이 활동 가능하도록 구현되어 있어서 semaphore를 이용할 때처럼 직접 동기화 제약 조건을 명시적으로..