2021. 6. 20. 21:57 Server

동기화 기법들

반응형

Server Programmer 들에게 동기화란 매우 민감하며 중요한 주제이다.

 

동기화 기법이란 Thread들에게 특정 Resource에 대한 접근 권한을 주는 기법이다.

 

각각의 동기화 기법들의 종류, 간단한 설명을 알아보자.

 

Lock 

 - 가장 기본적인 동기화 기법이며 critical section을 활용하여 동기화를 한다.

 

Mutex

 - 단 하나의 Thread 접근을 허용한다. [모든 프로세서에서 접근 가능.]

 - 이름을 지정하여 여러 Process가 접근 가능.

 

Shemaphore

 - 지정된 갯수만큼의 Thread 접근을 허가한다. [갯수 지정가능한 Mutex 느낌]

 -> 임계영역에 진입 시 lock, 임계영역 탈출 후 unlock을 하여 접근횟수를 관리한다.

 - Mutex처럼 이름을 통해 접근이 가능.

 

Event

 - 신호, 비신호 두 가지의 상태가 가능하다. [Manual mode, Auto reset mode]

 - 임계영역 탈출 시 자동으로 비신호상태로 바꿔주는 Auto Reset 여부를 설정이 가능하다.

 - 임계영역 진입 시 Non signaled 상태에서 signaled 상태로 변경한다.

 - 타 Thread 들은 signaled 상태인 event에 접근 시 대기한다.

 - Auto Reset Event 가 아닌 경우 임계 영역을 탈출 한 후 Signal 상태로 계속 존재한다.

  -> ResetEvent를 통해서 Non signaled 상태로 변경해줘야함.

 - 보통 Event의 경우 Thread간의 실행순서를 지켜야 하는 경우 많이 사용한다.

 

Atomic

 - 특정 int형 변수에 대한 접근을 제한하는 기법

 - Interlock을 통해서 Increase, Decrease, Compare 가 일반적으 로 사용된다.

 

반응형
Posted by Sweetmeats_boy

블로그 이미지
Sweetmeats_boy

태그목록

Yesterday
Today
Total

달력

 « |  » 2024.9
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함