728x90
반응형
1. 뮤텍스 (Mutex)
- 공유된 자원의 데이터 또는 임계영역(Critical Section)에 하나의 Process 또는 Thread만 접근하도록 하는 기술
- 즉, 잠금(Lock) 하는 것
- 동기화 대상이 하나
- 임계구역(Critical Section)을 가진 스레드들의 실행시간(Running Time)이 서로 겹치지 않고 각각 단독으로 실행되도록 하는 기술
- 한 프로세스 또는 스레드에 의해 소유될 수 있는 Key를 기반으로 한 상호배제 기법
2. 세마포어 (Semaphore)
- 현재 공유자원에 접근할 수 있는 프로세스(스레드)의 수를 나타내는 하나의 값을 이용하여 상호배제를 달성하는 기법
- Counter을 두어 동시에 리소스에 접근할 수 있는 허용 가능한 스레드 수를 제어한다.
3. 뮤텍스와 세마포어의 차이점
- Mutex는 동기화 대상이 오직 1개일 때 사용, Semaphore는 동기화 대상이 1개 이상일 때 사용한다.
- Mutex는 자원을 소유할 수 있고 책임을 가지는 반면, Semephore는 자원 소유가 불가능하다.
- Mutex는 상태가 0, 1 뿐이므로 Lock을 가질 수 있고, 소유하고 있는 스레드만이 이 Mutex를 해제할 수 있다. 반면, Semaphore는 Semaphore를 소유하지 않는 스레드가 Semaphore를 해제할 수 있다.
반응형
'Knowledge > 이론' 카테고리의 다른 글
가상 메모리와 페이징 시스템 (0) | 2024.01.23 |
---|---|
데드락(Deadlock) (0) | 2024.01.23 |
스레드 동기화 (Thread-Synchronization) (0) | 2024.01.23 |
객체지향 설계 5대 원칙 (SOLID 원칙) (0) | 2024.01.17 |
프로세스와 스레드의 차이 (0) | 2024.01.16 |