← 질문 목록
#235깊이 0
뮤텍스와 세마포어는 무엇으로 구분하는가?
소유권의 유무와 허용 가능한 프로세스 수로 구분한다. 뮤텍스는 한 번에 하나만 자원을 점유하고, 세마포어는 정해진 개수만큼 접근을 허용한다.
| 기준 | 뮤텍스 | 세마포어 |
|---|---|---|
| 소유권 | 소유자만 해제 가능 | 누구나 신호 가능 |
| 접근 수 | 무조건 1개 | 설정한 N개 |
| 용도 | 상호 배제 | 자원 관리 및 순서 제어 |
뮤텍스는 락(Lock)의 개념이다. 자원을 점유한 프로세스가 반드시 락을 해제해야 다른 프로세스가 들어올 수 있다.
세마포어는 신호(Signal)의 개념이다. 카운트 값을 관리하며, 자원이 남았을 때만 진입을 허용한다. 소유권이 없으므로 다른 프로세스가 신호를 보내 깨울 수 있다.
상호 배제만을 목적으로 한다면 뮤텍스가 더 가볍고 안전하다. 반면 동일한 자원을 정해진 수만큼 나눠 써야 한다면 세마포어를 선택한다.