- 공유된 자원의 데이터를 여러 프로세스가 접근하는 것을 방지
- 리소스의 상태를 나타내는 간단한 카운터의 개념
- 일반적으로 비교적 긴 시간을 확보하는 리소스에 대해 이용
- 운영체제의 리소스를 경쟁적으로 사용하는 다중 프로세스에서 행동을 조정하거나 동기화시키는 기술
- 하나의 스레드만 들어가게 할 수 있고, 여러개의 스레드가 들어가게 할 수 있음 (
뮤텍스와의 차이!
)
- 공유된 자원의 데이터를 여러 스레드가 접근하는 것을 막음
- Critical Section을 가진 스레드들의 Running time이 서로 겹치지 않게 각각 단독으로 실행되게 하는 기술
Critical Section이란? 각 프로세스에서 공유 데이터를 엑세스하는 프로그램 코드 부분
- 다중 프로세스들이 공유 리소스에 대한 접근을 조율하기 위해 locking과 unlocking을 사용하는데, 상호배제함으로써 두 스레드가 동시에 사용할 수 없음.