솜은 코튼

[OS] 경쟁 조건, 임계구역 (Critical Section) 본문

OS

[OS] 경쟁 조건, 임계구역 (Critical Section)

솜.코 2023. 5. 22. 11:54

 

 

공유 자원과 임계구역

.

 

 

프로세스는 독립적으로 작업을 할 수도 있지만

공유된 자원을 가지고 공동 작업을 할 수도 있다.

 

한정된 자원으로 공동 작업을 할 때 발생할 수 있는 문제를 알아보자.

 

 

 

 

위의 예로 보면 P1과 P2는 동시에 예금에 10만원이 있는 것을 확인한 후 작업을 시작했다.

작업 후 10만원을 기준으로 넣은 금액이 더해져 총 25만원이 되어야 하는데 20만원이 되었다.

 

이 문제를 해결하기 위해 두 프로세스 중 한 프로세스가 작업을 마친 후 다른 프로세스가 작업을 시작해야 한다.

 

이처럼 2개 이상의 프로세스가 공유 자원을 병행적으로 읽거나 쓰는 상황

'경쟁 조건(Race Condition)'이 발생했다고 한다.

 

 

앞의 예로 공유 자원 접근 순서에 따라 실행 결과가 달라지는 것을 봤다.

이 프로그램의 영역을 '임계구역(Critical Section)'이라 한다.

 

이 임계구역에서는 프로세스들이 동시에 작업하면 안 된다!

 

 

 

 

 

 

 

 

* 해당 글은 '쉽게 배우는 운영체제' 책을 참고하여 작성하였습니다. 출처: 쉽게 배우는 운영체제 (조성호 지음)