쓰레드 동기화는 일치한다는 의미에서의 동기화가 아니라 순서에 있어서 질서가 지켜지고 있음을 의미한다. 즉 쓰레드동기화는 쓰레드의 실행순서를 정의하고, 이 순서에 반드시 따르도록 하는 것이 쓰레드 동기화 이다.
또한 한순간에 하나의 쓰레드만 접근해야 하는 메모리 영역이 존재한다. (데이터 영역, 힙 영역) 메모리 접근에 있어서 동시 접근을 막는것 또한 쓰레드의 동기화에 해당한다.
"실행 순서의 동기화"와 "메모리 접근의 동기화"가 있다.
Windows에서의 동기화 기법
Windows에서의 동기화 기법은 제공하는 주체에 따라 두가지로 나뉜다.
1.유저모드 동기화(User Mode Synchronize) 기법
2. 커널 모드 동기화(Kernel Mode Synchronize)기법 이 있다.
유저 모드 동기화 : 동기화 과정에서 커널코드가 실행되지 않는 동기화 기법이다. 동기화 과정에서 커널 모드로의 전환이 없어 성능상 좋다.
커널 모드 동기화 : 커널에서 제공하는 동기화 기능을 활용하는 방법이다. 동기화 과정에서 커널 함수를 사용하여 커널모드로의 전환이 필요하고, 성능 저하가 발생한다. 그러나 유저 모드 동기화에서 제공 못하는 기능을 제공받을 수 있다.
1.유저 모드 동기화
1-1 크리티컬 섹션(Critical Section) 기반의 동기화
- 메모리 접근 동기화에 사용 예정
1-2 인터락 함수 (Interlocked Family Of Function)기반의 동기화
- 메모리 접근 동기화에 사용 예정
2.커널 모드 동기화
2-1 뮤텍스(Mutex) 기반의 동기화
- 메모리 접근 동기화 사용할 예정
2-2 세마포어(Semaphore) 기반의 동기화
- 메모리 접근 동기화에 사용할 예정
2-3 이름 있는 뮤텍스(Named Mutex) 기반의 프로세스 동기화
- 프로세스간 동기화에 사용할 예정
2-4 이벤트(Event) 기반의 동기화
- 실행 순서 동기화에 사용할 예정
'Programming > Windows System Programming' 카테고리의 다른 글
커널 모드 동기화(Synchronization In kernel Mode) - 뮤텍스(Mutex) (0) | 2020.07.30 |
---|---|
유저 모드 동기화(Synchronization In User Mode) (0) | 2020.07.29 |
쓰레드 상태 컨트롤 (0) | 2020.07.26 |
쓰레드의 성격과 특성 (0) | 2020.07.25 |
Windows에서의 쓰레드 생성과 소멸 (0) | 2020.07.23 |