질문 11
뮤텍스와 세마포어의 차이점을 설명해 보세요.
답변
뮤텍스와 세마포어는 프로세스 동기화를 위한 상호배제 기법입니다. 이 중 뮤텍스는 락을 가진 하나의 프로세스만 임계 영역에 접근할 수 있게 하는 동기화 방식입니다. 이 방식을 사용하면 임계 영역에 접근하려는 프로세스는 반복문을 돌며 임계 영역에 접근 가능한지 확인하게 되는데, 이러한 현상을 스핀락이라고 합니다. 반면에 세마포어는 임계 영역에 특정 개수의 프로세스가 접근할 수 있게 제어하는 방식입니다. 임계 영역에 접근이 불가능하면 해당 프로세스는 대기 상태로 들어가고, 이후 임계 영역을 처리 중이던 프로세스가 임계 영역을 나가면서 대기 상태인 프로세스를 깨우게 됩니다.
TIP 뮤텍스와 세마포어의 목적이 동기화라는 것을 이해해야 한다. 또한, 뮤텍스와 세마포어의 특징을 알아 두기를 추천한다.