- 쓰레드의 실행순서를 정의하고, 이 순서에 반드시 따르도록 하는 것이 쓰레드 동기화이다.
- 메모리 접근에 있어서 동시접근을 막는 것 또한 쓰레드의 동기화에 해당한다.
| 쓰레드 동기화의 두 가지 방법
- 유저 모드 동기화 -> 동기화 진행 과정에서 커널의 힘을 빌리지 않는다. 성능상의 이점이 있다.
- 커널 모드 동기화 -> 동기화에 관련된 함수가 호출될 때 마다 커널 모드로의 변경이 필요하고 , 이는 곧 성능의 저하로 이어진다. 그러나 유저 모드 동기화에서 제공하지 못하는 기능을 제공받을 수 있다.
| 임계영역 접근 동기화 (criticla section)
- 둘 이상의 쓰레드가 동시에 실행할 경우 문제가 발생할 수 있다. 이러한 문제를 일으키는 코드 블록을 가르켜 임계 영역이라고 한다.
- 배타적 접근 (한 순간에 하나의 쓰레드만 접근)이 요구되는 공유 리소스(전역변수와 같은)에 접근하는 코드 블록을 의미한다.
'프로그래밍 > 시스템프로그래밍' 카테고리의 다른 글
프로세스간의 통신 (0) | 2019.09.30 |
---|---|
timer 함수 (0) | 2019.09.26 |
1.2 쓰레드의 생성과 소멸 (0) | 2019.09.25 |
1.1 쓰레드 (0) | 2019.09.24 |
3. 커널 오브젝트 (0) | 2019.09.23 |