Mutual Exclusion (상호 배제)

Choooose·2023년 2월 10일
0

운영체제

목록 보기
6/8

Mutual Exclusion


서로 다른 두 프로세스가 동시에 공유 자원을 쓰지 않도록 하는 기법
공유 자원을 Critical Section (임계구역) 이라고 하며 각 프로세스의 사용자 모드에서는 로컬 메모리를 가지므로 Critical Section이 따로 존재하지 않는다.

그러나 커널 모드 안에서는 각 프로세스가 같은 메모리 공간을 공유할 수 있으므로 Critical Section이 존재한다.

Mutual Exclusion 은 같은 시간에 임계구역에 접근하는 프로세스를 하나로 제한한다.

예전 UNIX 에서는 Mutual Exclusion을 위해 커널 모드에서는 문맥교환이 일어나지 않도록 하였다.

이때 전역 변수에 대해서는 Count 변수나 Lock을 두어 Critical Section의 자원을 이용하고 있는지를 검사한 후에 이용하는 프로세스가 없다면 접근하도록 한다.

Count는 Ciritical Section이 하나만 있는 것이 아니고 프로세스가 다수의 Critical Section에 접근한다고 했을때, Count를 더해준다.
Count가 0이 되었을 때가 더 이상 Critical Section에 접근하지 않는다는 의미이므로 Lock을 해제한다.

현대에는 Mutex Lock, Spin Lock, Semaphore 등을 활용하여 Critical Section에 접근하는 것을 제한한다.

0개의 댓글