뮤텍스는 가장 간단한 동기화 방법이다. - 두개의 프로세스 

 

세마포어는 두개만 지원하는 반면에 세마포어는 여러개지원이 가능 

모니터는 두가지의 단점을 개선시킨 것이다. 

라이브니스: ensures for processes for 동기화 

 

Busy Waiting  

Any other process trying to ensure its critical section 

- must loop continuously in the call to acquire (). 

Busy waiting is clearly a problem in a real multiprogramming system. 

- Where a single CPU core is shared among many processes. 

- wastes CPU cycles for some other processes to use productively. 

 

 

세마모어: 신호장치 신호기 

 

세마모어s wait and signal 

 

세모퍼아는 비지 웨이팅 문제를 가지고 있다. to overcome the problem, modify the definition of P() and V() 

 

wait() and signal()을 통해서 극뽁~ 

 

 

모니터 

세마포어는 사용하기 어렵다 - 타이밍에러가 자주 발생하기 때문 (잡기도 어려운 문제) 

웨이트를하고 시그널을 해야하는데 이 규칙을 안지키면은 순서내에 동시에 들어가는 문제가 생긴다. 

 

 

simple synchronization tools 을 사용하자 

좀 더 고급진 도구 

모니터: 동기화 도구 

 

자바의 클래스처럼 베이어블을 선언하고 해당 베리어블을 호출하도록 도와준다. 

 

모니터라는것을 선언하고 함수들을 쭉 선언하면은 다 동기화가 된 함수들이다. 

 

 

모니터 - Liveness conditional varialbe 을 선언해주고 wait하고 notify를 호출해주면 싱크할수있다. 

 

Liveness 

priority inversion 

 

+ Recent posts