본문 바로가기
기술 면접 공부

Mutex와 Semaphore의 차이에 대해 설명하시오.

by 글쓰는 백곰 2017. 7. 25.

미국 면접에서 단골 질문으로 나오는 Mutex와 Semaphore에 대해 간단하게 적어 봤습니다.

아래에 적은 것 외에도 많은 차이와 특징들이 있지만,

면접에서는 아주 빠르고 간결하게, 대표적인 특징만 잡아서 답변 하는 것이 바람직합니다.


- Semaphore

- count 값을 가지고 있다.

- count 값이 1인 Semaphore를 Binary semaphore라고 한다.

- up, down으로 lock을 잡고 푼다.

- task가 이미 사용 중이 Semaphore를 얻으려고 하면, Semaphore는 해당 task를 wait queue에 넣고 sleep상태로 만든다.

- Semaphore가 사용 가능해 지면, wait queue의 task를 한 깨우고, 이 task가 Semaphore를 사용하게 된다.


- Mutex

- Binary semaphore와 유사하게 동작한다.

- 성능이 semaphore보다 좋고, interface가 간단하다.

- count 값을 관리할 필요가 없기 때문에 Semaphore보다 간단하다.

- 사용상 제약 사항이 있다. (Mutex를 얻은 곳에서만 Mutex를 해제할 수 있다.)

- lock, unlock으로 얻고 해제 한다.

- Mutex를 lock하고 있는 동안에는 Process 종료가 불가능하다.




댓글