티스토리 뷰

쓰레드 동기화

- 쓰레드의 실행 순서를 정의하고, 이 순서에 반드시 따르도록 하는 것
- 메모리 접근에 있어서 동시 접근을 막는 것

임계 영역

- 배타적 접근이 요구되는 공유 리소스에 접근하는 코드 블록을 의미


유저모드 동기화

동기화가 진행되는 과정에서 커널모드로의 전환이 불필요하므로 성능상에 이점이 있다.

critical section : 메모리 접근 동기화

- 전역으로 선언된 변수 하나의 접근 방식을 동기화

Interlocked Family Of Function : 메모리 접근 동기화

- 함수 내부적으로 한 순간에 하나의 쓰레드에 의해서만 실행

커널모드 동기화

커널모드로의 전환이 필요해서 성능은 저하되지만 유저모드에서 제공 못하는 기능을 제공할 수 있다.

Mutex : 메모리 접근 동기화

- 단순화된 세마포어

- 공유된 자원의 데이터를 여러 쓰레드가 접근하는 것을 막는 것

- critical section과 유사

- 공유 리소스에 대한 접근을 조율하기 위해 locking / unlocking을 사용

- 동기화 대상이 오직 하나 ! 

예) 화장실 열쇠를 1개만! 가질 수 있다.

Semaphore : 메모리 접근 동기화

- 공유된 자원의 데이터를 여러 프로세스가 접근하는 것을 막는 것
- 카운트 기능으로 여러 개의 스레드가 접근 가능
- 동기화 대상이 하나 이상 !
예) 화장실 칸이 4개이고 열쇠가 4개라면, 4명까지는 대기없이 사용할 수 있고 그 다음부터는 대기를 해야한다.

Event : 실행 순서 동기화


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함