Computer/Programming(코딩)

[운영체제, Operating System] 임계 구역, Critical section

Lewis.yongmin 2015. 10. 9. 02:31

임계 구역(Critical section)이란?


임계 구역(critical section) 또는 공유변수 영역은,

: 병렬컴퓨팅에서 둘 이상의 스레드가 동시에 접근해서는 안되는 공유 자원(자료 구조 또는 장치)을 접근하는 코드의 일부를 말한다. 

: 스레드가 공유자원의 배타적인 사용을 보장받기 위해서 임계 구역에 들어가거나 나올때는 세마포어 같은 동기화 매커니즘이 사용된다.





코드 예시

do {

      wait(mutex);   //입장 구역


      임계 구역(Critical section)


      signal(mutex); //퇴장 구역


      나머지 구역

}


1. 각 프로세스는 자신의 임계 구역에 진입하려면 진입허가를 요청해야 한다.


2. 입장 구역(entry section)에서 기다리다가 진입 허가가 나면 임계 구역에 들어간다. 


3. 임계 구역 이후에는 임계 구역을 빠져나왔음을 알리는 코드 부분인 퇴장 구역(exit section)이 있다.