- 쓰레드의 실행순서를 정의하고, 이 순서에 반드시 따르도록 하는 것이 쓰레드 동기화이다.

 

- 메모리 접근에 있어서 동시접근을 막는 것 또한 쓰레드의 동기화에 해당한다.

 

| 쓰레드 동기화의 두 가지 방법

 

- 유저 모드 동기화 -> 동기화 진행 과정에서 커널의 힘을 빌리지 않는다. 성능상의 이점이 있다.

 

- 커널 모드 동기화 -> 동기화에 관련된 함수가 호출될 때 마다 커널 모드로의 변경이 필요하고 , 이는 곧 성능의 저하로 이어진다. 그러나 유저 모드 동기화에서 제공하지 못하는 기능을 제공받을 수 있다.

 

 

 

| 임계영역 접근 동기화 (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

+ Recent posts