본문 바로가기
CS

상호배제(Mutual Exclusion)

by 남생이야 2024. 5. 16.

   상호배제는 공유가 불가능한 자원을 동시에 사용하는 현상을 피하기 위해서 사용하는 알고리즘으로 하나의 프로세스가 작업을 완료되기 전까지 다른 프로세스가 접근을 허용하는 것을 막는 것을 말한다. 

 

임계 구역 

  • 동시에 공유되서는 안되는 자원을 임계 구역(Critical Section)이라고 한다. 
  • 계산이 느리다는 단점이 있으나 높은 정확성을 보장한다. 
  • 데드락 상태를 유발한다는 단점이 있다. 

 

 상호배제 해결 알고리즘으로는 

데커 알고리즘, 피터슨 알고리즘, 베이커리 알고리즘이 있다. 

 

데커 알고리즘 

- 공유 메모리를 사용하여 두 프로세스가 하나의 자원을 혼란없이 사용할 수 있게 하는 알고리즘이며 두 프로세스가 동시에 임계 영역에 진입할려 고 할 때 하나만 들어가도록 하는 기법이다. 한 프로세스가 이미 임계 영역에 있다면 다른 프로세스는 이미 들어간 프로세스의 작업이 마칠 때까지 기다린다. 

 

피터슨 알고리즘 

- 두 개의 프로세스를 기준으로 구현한 알고리즘이며 이전에 진입한 프로세스가 다음에 진입할 프로세스에게 양보를 해주는 알고리즘이다. 

 

베이커리 알고리즘

 - 프로세스 별로 우선순위를 부여해서 각 프로세스별 자기 차례가 오기까지를 기다리게 하는 알고리즘이다. 이 알고리즘에 특징은 프로세스 개수에 제한이 없다. 

'CS' 카테고리의 다른 글

임계 구역 (Critical Section)  (0) 2024.05.19
문맥교환 오버헤드 (Context Switch Overhead)  (0) 2024.05.17
인터럽트(Interrupt)  (0) 2024.05.15
데드락(DeadLock)  (0) 2024.05.14
애자일(Agile)  (0) 2024.05.07