본문 바로가기
운영체제

[운영체제] 임계영역(Critical Section)의 정의

728x90
반응형

🍳 공유자원이란?

    멀티 스레드와 멀티 프로세스에서 여러개의 스레드 혹은 프로세스가 공유하는 데이터를 공유자원이라 합니다. 허나 이렇게 자원을 공유하는 과정에서 한가지 문제가 발생하는데 '경쟁 상태'라고 불리는 상황이다. 

위 상황에서는 분명 변수 1을 두 개의 쓰레드가 각각 1씩 증가를 해주었기 때문에 최종적으로 3이 되어야 하지만 2가 되었습니다. 이러한 상태를 경쟁 상태라고 부릅니다.

 

🎲 임계영역(Critical Section)이란?

    위에서 설명한 경쟁 상태가 발생할 수 있는 영역이 바로 임계 영역입니다. 때문에 임계영역에서 발생할 수 있는 문제를 해결하기 위해서는 3가지 조건을 지켜주어야 합니다.

      1. 상호 배제 (Mutual exclusion) : 임계 영역에는 두 개 이상의 프로세스가 동시에 들어 올 수 없습니다.

      2. 한정 대기 (Bounded waiting) : 프로세스가 임계 영역으로 들어가기 위해 대기가 무한정으로 길어지면 안됩니다.

      3. 진행 (Progress) : 임계 영역에 동시에 여러개의 프로세스가 접근 하려할 때 우선순위를 적절히 결정해 주어야 한다.

 

🍳 교착상태(Dead Lock)란?

    교착상태는 두 개 이상의 프로세스가 서로 점유중인 자원에 접근하기 위해서 무한정으로 대기 하는 상태를 말합니다.

 

반응형