- 임계 구역 (Critical Section) : 여러 Process or Thread가 공유 자원에 접근하는 부분. 그렇기 때문에 이 임계 구역에 여러 Process나 Thread가 한번에 접근할 수 없도록 관리를 해줘야 한다.
- 뮤텍스 (Mutex) : 공유 자원에 대한 접근을 동기화하기 위해 사용되는 상호배제 기술.
Locking 메커니즘으로 오직 하나의 Thread만이 동일한 시점에 Lock을 얻어 임계 영역에 들어올 수 있다.
그리고 오직 그 Thread만이 Lock을 반환하여 임계 영역에서 나갈 때(Unlock) 다른 Thread가 접근할 수 있다.
뮤텍스는 오직 1개의 Thread만 접근할 수 있기 때문에 이진 세마포어와 같은 개념이다.
- 세마포어 (Semaphore) : 공유 자원에 세마포어의 변수만큼의 Thread가 접근 할 수 있음. (변수가 1이면 이진 세마포어)
Thread들은 대기하다가 자원이 사용하지 않는 상태가 되면 즉시 자원을 사용한다.
Signaling 메커니즘이라는 점에서 뮤텍스와 다르다. 세마포어는 Lock을 걸지 않은 Thread도 Signal을 보내 Lock을 해제 할 수 있다.
반응형
'개발에 도움이 되는 > CS' 카테고리의 다른 글
가비지 컬렉션(Garbage Collection) (0) | 2022.01.10 |
---|---|
컴퓨터를 켜면 일어나는 과정 (OS 부팅 과정) (0) | 2022.01.09 |
가상 메모리(Virtual Memory) (0) | 2022.01.09 |
경쟁상태(Race Condition), 교착상태(DeadLock), 기아상태(Starvation)의 정의 (0) | 2021.12.15 |
Program, Process, Thread (0) | 2021.10.29 |