\ 후려치기 \

공유 자원을 여러 프로세스가 동시에 접근하면 문제가 발생할 수 있다. 이를 방지하기 위해 공유 자원은 한 번에 하나의 프로세스만 접근할 수 있도록 해야하는데 이를 위해 고안된 것이 바로 세마포어다.

세마포어는 공유된 자원에 여러 프로세스가 동시에 접근하는 것을 막는다.

이와 비슷한 개념으로 뮤텍스(mutex)가 있는데, Mutex exclusion (상호 배제) 라고도 한다.

뮤텍스는 공유된 자원에 여러 쓰레드가 동시에 접근하는 것을 막는다.

Semaphore

Mutex

Critical section 을 가진 쓰레드들의 running time 이 겹치지 않도록 각각 단독으로 실행되게 하는 기술이다. 다중 프로세스들의 공유 리소스에 대한 접근을 조율하기 위해 locking 과 unlocking 을 사용한다.

참고

Semaphore란? 세마포어와 뮤텍스의 차이는?