컴퓨터

세마포어와 뮤텍스의 차이

업무 중 2021. 1. 29. 22:39

세마포어(Semaphore)와 뮤텍스(Mutex)의 차이

Toilet problem

동시성 프로그래밍의 가장 큰 숙제는 ‘공유자원 관리’일 것이다. 공유자원을 안전하게 관리하기 위해서는 상호배제(Mutual exclusion)를 달성하는 기법이 필요하다.

뮤텍스와 세마포어는 이를 위해 고안된 기법으로 서로 다른 방식으로 상호배제를 달성한다. 오늘은 이 둘의 차이를 알아보자.

Mutex

뮤텍스는 화장실이 하나 뿐인 식당과 비슷하다. 화장실을 가기 위해서는 카운터에서 열쇠를 받아 가야 한다. 누군가 사용하고 있다면, 다른 사람은 당연히 화장실을 이용하지 못한다. 즉, 한 쓰레드, 프로세스에 의해 소유될 수 있는 Key🔑를 기반으로 한 상호배제기법을 의미한다.

 

Semaphore

세마포어의 경우 화장실이 여러개이고, 화장실의 입구엔 빈 칸의 갯수를 알려주는 표지가 있다. 즉, Signaling mechanism. 현재 공유자원에 접근할 수 있는 쓰레드, 프로세스의 수를 나타내는 값을 두어 상호배제를 달성하는 기법을 의미한다.

'컴퓨터' 카테고리의 다른 글

클라우드 컴퓨팅 서비스 모델  (0) 2021.02.02
교착상태  (0) 2021.02.02
운영체제(OS)란?  (0) 2021.01.28
컴파일러, 인터프리터  (0) 2021.01.27
인터럽트 우선순위  (0) 2021.01.22