-
필요 조건들
교착 상태는 한 시스템 내에서 다음에 네 가지 조건이 동시에 성립할 때 발생한다.
따라서 네 가지 조건 중 하나라도 성립하지 않도록 만든다면 교착상태를 해결할 수 있다.
상호 배제 : 자원은 한 번에 한 프로세스만이 사용할 수 있어야 한다.
점유 대기 : 최소 하나의 자원을 점유하고 있으면서 다른 프로세스에게 할당되어 사용되고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 한다.
비 선점 : 다른 프로세스에게 할당된 자원은 사용이 끝날 때 까지 빼앗을 수 없어야 한다.
순환 대기 : P1은 자원을 점유하고 있으면서 P2 의 자원을 요구하고
P2도 자원을 점유하고 있으면서 P1의 자원을 요구해야 한다.
자원 할당 그래프
프로세스와 자원의 요청 및 할당 관계를 표시한다.
순환 대기 조건을 발견하기 위한 목적으로 사용된다.
첫 번째 그림의 경우 사이클 내의 공유 자원들이 모두 사이클을 형성하고 있는 프로세스들에 의해 점유되고 있다.
이럴 경우 교착 상태가 발생할 수 있다.
두 번째 그림의 경우 사이클을 형성하고 있지 않은 프로세스들이 자원을 사용한 후 방출하면
다른 프로세스가 자원을 사용할 수 있으므로 교착상태가 발생하지 않는다.
댓글