뮤텍스와 세마포어는 공통적으로 공유 자원에 동시에 접근하면서 발생하는 문제점을 해결하기 위한 접근 제한법 입니다.
공유 자원에 한 번에 한 프로세스나 스레드만 접근할 수 있는 방법을 말합니다.
그리고, 공유자원을 요구하는 프로세스들은 순서대로 대기합니다.
세마포어는, 동시에 공유자원에 접근할 수 있는 프로세스나 스레드의 수가 2개 이상으로 제한된 것을 말합니다.
이 제한된 수의 프로세스나 스레드가 모두 공유자원에 접근하고 있는 상태라면, 이후에 해당 자원을 요구하는 프로세스들은 순서대로 대기합니다.
어떤 프로세스나 스레드가 공유자원의 사용을 마치면, 기다리고있던 다음 프로세스나 스레드가 공유자원에 접근할 수 있는 권한을 갖게 됩니다.