본문 바로가기
CONCEPT/OS

[OS] 동기화 기법 3가지 - 뮤텍스(Mutex), 세마포어(Semaphore), 모니터(Monitor)

by 1005 2025. 3. 17.

* 뮤텍스 락: 상호배제를 위한 동기화 도구

탈의실: 자원 (임계구역) / 손님: 프로세스
C언어로 작성된 예시

 


 

* 세마포: 좀 더 일반화된 방식의 동기화 도구, 공유 자원이 여러 개 있는 경우에도 적용 가능

p.s. 뮤텍스 락은 공유 자원이 하나만 있음. 이진 세마포와 비슷함. 

세마포의 종류(이진 세마포, 카운팅 세마포) 중 카운팅 세마포에 대해 설명할 예정.

 

세마포는 철도 신호기에서 유래한 단어임.

 

큐 사용하지 않는 과정 예시
while문을 통해서 계속 임계구역을 진입할 수 있는지 확인하는건 자원낭비임.
대기상태는 CPU사이클이 필요 없음. 준비상태로 바뀌면 CPU 자원 활용함.
큐 사용하는 과정 예시

 

 


* 모니터

세마포는 디버깅하기 어려워서 개발자가 사용하기 어려움. 그래서 개발자가 다루기편한 동기화 도구인 모니터가 등장함.

 

 

 

x.wait()
x.signal()
(조건) - (두가지 방식)

댓글