semaphore
-
뮤텍스와 세마포어 (mutex and semaphore)CS 2021. 12. 5. 18:20
개념 세마포어는 프로세스간 공유된 자원에 대해서 여러 프로세스 또는 쓰레드가 정해진 갯수 이상으로 동시에 접근하는 것을 막는다. 뮤텍스는 쓰레드간 공유된 자원에 대해 여러 프로세스 또는 쓰레드가 동시에 접근하는 것을 막는다. 차이점 세마포어는 정수 값을 갖고 접근할 수 있는 최대 허용치 만큼 동시에 사용자 접근을 허용하지만 뮤텍스는 1,0의 값만 갖고 최대 하나의 접근만 허용한다. 세마포어는 소유할 수 없으므로 작업중이 아닌 다른 프로세스 또는 쓰레드가 세마포어를 해제할 수 있지만 뮤텍스는 락을 획득한 프로세스 또는 쓰레드만이 락을 해제할 수 있다. 세마포어는 파일 형태로 존재하며 시스템 전체에서 공유되지만 뮤텍스는 프로세스 내에서만 공유되며 프로세스 종료 시 자동으로 clear 된다.