동기화(synchronization)를 위한 전략 3가지
스레드 또는 프로세스의 동기화를 위해 자주 사용되는 락 메커니즘
1. 스핀락(spinlock)
2. 뮤텍스(mutext)
3. 세마포(semaphore)
뮤텍스는 != 바이너리 세마포
00:00 오프닝
00:10 race condition, 동기화, 임계 영역 뜻
00:51 mutual exclusion 어떻게 보장할 수 있나?
01:19 spinlock (feat. CPU의 도움)
07:08 spinlock의 단점
07:31 mutex
11:12 mutex가 spinlock 보다 항상 좋은가?
13:05 semaphore
18:03 mutex와 binary semaphore는 같은가?
21:47 참고사항
22:13 클로징
경쟁 조건(race condition)
동기화(synchronization)
임계 영역(critical section)
어떻게 (mutual exclusion) 을 보장할 수 있을까?
락(lock)을 사용하자!
여러 프로세스/스레드 가 락(lock) 을 획득하기 위해 경합하고,
이긴 것만 임계 영역(critical section)에 들어가서 실행하고,
실행이 끝나면 임계 영역(critical section)을 빠져 나오면서 락(lock)을 반환한다
스핀락(spinlock)
뮤텍스(mutex)
아래의 두 조건을 만족할 경우,
스핀락(spinlock)이 뮤텍스(mutex)보다 이점이 더 크다.1) 멀티 코어 환경 이고,
2) critical section 에서의 작업이 컨텍스트 스위칭보다 빨리 끝난다면,