본문 바로가기

CS/운영체제

공유자원과 임계 영역, 그리고 경쟁상태(race condition)

공유 자원
시스템 안에서 각 프로세스, 스레드가 함께 접근할 수 있는 모니터, 프린터, 메모리, 파일, 데이터 등의 자원이나 변수 등

 

경쟁 상태
이 공유 자원을 두 개 이상의 프로세스가 동시에 읽거나 쓰는 상황. 동시에 접근을 시도할 때 접근의 타이밍이나 순서 등이 결괏값에 영향을 줄 수 있는 상태

 

임계 영역
둘 이상의 프로세스 또는 스레드가 공유자원에 접근할 때 순서 등의 이유로 결과가 달라지는 코드영역

 

임계 영역을 해결하기 위한 방법

1. 뮤텍스

2. 세마포어

3. 모니터

 

이 방법 모두 상호 배제, 한정 대기, 융통성이란 조건을 만족

이 방법들의 토대가 되는 매커니즘은 잠금(lock)이다.

예를 들어 화장실이라고 가정한다면 화장실에 A라는 사람이 들어간 다음 문을 잠금

다음 사람이 이를 기다리다 A가 나오면 화장실을 쓸 수 있음