교착 상태의 발생 조건
교착 상태에 있는 프로세스들은 결코 실행을 끝낼 수 없으며 시스템 자원들이 묶여 있어서 다른 작업을
실행하는 것도 불가능하다. 교착 상태가 발생하기 위해서는 다음의 네 가지 조건이 만족되어야 한다.
이 네가지 조건이 동시에 만족 될 때 교착 상태가 발생하며 이 조건 중 하나만 발생하지 않아도
교착 상태의 발생을 방지할 수 있다.
1) 상호 배제
상호 배제는 프로세스들이 자원을 배타적으로 점유하고 있어서 다른 프로세스들이 그 자원을 사용할 수
없도록 만든다. 즉 프로세스들이 그들이 필요한 자원에 대해 배타적인 통제권을 요구함에 따라서 최소한
한 번에 한 프로세스만이 자원을 사용할 수 있으며 다른 프로세스가 그 자원을 요구하면 자원을 요구한
프로세스는 자원이 해제될 때까지 임계구역 밖에서 대기한다.
2) 점유와 대기
점유와 대기는 프로세스가 자신에게 이미 할당된 자원들을 점유하고 있으면서, 다른 자원을 추가로
요구하며 기다리고 있는 것이다. 따라서 최소한 하나의 자원을 점유하고 있는 프로세스가 존재해야 하며
이 프로세스는 다른 프로세스에 할당된 자원을 추가로 점유하기 위하여 대기해야 한다.
3) 비선점
비선점은 다른 프로세스가 사용하고 있는 자원을 타 프로세스가 강제로 선점 할 수 없는 것으로 현재
프로세스에게 일단 할당된 자원은 모든 처리가 끝나서 해당 프로세스가 그 자원을 해제시킬 때까지
중단되지 말아야 한다는 것이다.
4) 환형 대기
환형 대기는 프로세스와 자원들이 원형을 으루며 각 프로세스는 자신에게 할당된 자원을 가지면서
상대방의 자원을 상호 요청하는 경우를 말한다.
교착 상태 발생 네 가지 조건 중에서 상호 배제, 점유와 대기, 비선점 조건은 교착 상태가 발생할 때
반드시 나타나게 되는 필요조건이나 이 세 가지 조건만으로는 결코 교착 상태가 발생하지 않는다.
그러나 환형 대기 조건은 위의 3가지 조건을 갖고 있는 형태이므로 이 조건은 교착상태가 되기 위한
필요충분조건이라 할 수 있다.
'it관련' 카테고리의 다른 글
고정 분할 할당 관리 (0) | 2017.05.09 |
---|---|
단일 분할 할당 관리 (0) | 2017.05.09 |
주기억 장치 관리 기법 (0) | 2017.05.09 |
CPU 스케줄링 (0) | 2017.05.09 |
동기화란? (0) | 2017.05.08 |