동기화 문제 해결

Icarus_w·2022년 12월 22일
0

CS공부

목록 보기
7/25

동기화 문제

서로 다른 thread가 메모리 영역을 공유하기 때문에 여러 thread가 동일한 자원에 동시에 접근하여 엉뚱한 값을 읽거나 수정하는 문제

atomic operation 겹칩 -> race condition 발생 -> 동기화 문제 발생

해결방법

임계영역

둘 이상의 process/thread가 동시에 동일한 자원에 접근하도록 하는 프로그램 코드 부분

동기화 문제를 해결하기 위해서는 임계구역을 원자적으로 실행해야 한다.

Entry Sction -> Critical Section(임계영역) -> Exit Section

1. Mutex

1개의 Thread만이 자원에 접근하도록하여, 경쟁상황(race condition)을 방지

공유자원을 점유하면 Lock이 되어, 다른 Thread는 접근 불가

2. Semaphore

S개의 Thread만이 자원에 접근하도록 제어

S의 값이 0이 되면 다시 커질때까지 Lock

profile
하루에 하나

0개의 댓글