CafeM0ca

[공룡책]임계 구역 본문

OS/공룡책

[공룡책]임계 구역

M0ca 2018. 2. 2. 11:56
반응형

임계 구역(critical section) == 공유변수 영역


둘 이상의 쓰레드가 동시에 접근해서는 안되는 공유 자원(ex: 자료 구도 또는 장치)에 접근하는 코드의 일부. 

임계구역은 지정도니 시간 이후에 종료됨. 임계 구역에 들어가고자 한다면 그 시간만큼 대기해야함. 

임계구역에 들어가거나 나올때에는 세마포어 같은 동기화 메커니즘이 사용된다.


세마포어

세마포 혹은 세마포어는 동기화 도구로서 wait()와 signal()로만 접근


A와 B가 방에 들어가려한다.

방에는 카드 52장이 있다. 

A와 B는 정해진 시간동안 번갈아가면서 카드를 뒤집을 수 있다.

A는 앞면으로 B는 뒷면으로 뒤집는다.

먼저,  A가 방으로 들어갔다. B는 대기하고 있다.

A가 카드를 뒤집고 방에서 나왔다.

방은 비어있으므로 B가 방에 들어간다.

방 안에 B가 있으므로 A가 대기하고 있다.


여기까지가 세마포어의 예시다.

임계영역은 방이 되고

A와 B는 각각 쓰레드다.

카드는 공유자원이다.



반응형
Comments