개발놀이터

면접 준비 : 뮤텍스와 세마포어 본문

CS 지식/면접준비

면접 준비 : 뮤텍스와 세마포어

마늘냄새폴폴 2023. 4. 27. 15:39

Q. 뮤텍스와 세마포어의 차이점에 대해서 설명해주세요. 
A. 뮤텍스는 Locking 매커니즘이고 세마포어는 Signaling 매커니즘입니다. 이 둘은 식당에 있는 화장실 예시로 설명할 수 있습니다. 이 화장실 예제에서 사람은 프로세스 혹은 스레드로, 화장실은 자원으로 묘사됩니다. 뮤텍스는 식당에 화장실이 한개이고 열쇠도 한개인 경우입니다. 화장실에 가고싶으면 열쇠를 획득해야하고 만약 이미 화장실에 사람이 있다면 열쇠를 획득할 때 까지 기다려야합니다. 세마포어는 화장실이 여러개이고 화장실 밖에 전광판이 있는 경우입니다. 만약 화장실이 세개라면 전광판에는 3이라는 숫자가 적혀있고 누군가 화장실에 들어가면 전광판의 숫자가 2로 줄어듭니다. 화장실에 들어간 사람이 화장실을 나온 경우 숫자는 다시 3으로 바뀌게 됩니다. 모든 화장실에 사람이 들어가있어서 전광판의 숫자가 0으로 바뀌게 되면 화장실에 가기 위해서는 화장실에 있던 사람이 나올 때 까지 기다려야합니다.