25 Aug 2020
교착상태(deadlock), 기아상태(starvation)
교착상태(DeadLock)
교착상태란?
-
두 개 이상의 작업이 서로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에
다음 단계로 진행하지 못하는 상태
교착상태 발생 조건(4가지 모두 만족해야 deadlock걸림)
-
상호배제 : 프로세스가 사용하는 자원은 다른 프로세스와 공유할 수 없는 배타적인 자원이고
배타적인 자원은 임계구역으로 보호되기 때문에 다른 프로세스가 동시에 사용할 수 없다.
따라서 배타적인 자원을 사용하면 교착상태가 발생한다.
-
비선점 : 한 프로세스가 사용중인 자원은 중간에 다른 프로세스가 빼앗을 수 없는 비선점 자원
이어야한다.
-
점유대기 : 프로세스가 자원을 할당받은 상태에서 다른 자원을 기다리는 상태여야 한다.
-
원형대기 : 점유와대기를 하는 프로세스간의 관계가 원을 이루어야한다.
기아상태(starvation)
-
특정 프로세스의 우선순위가 낮아서 원하는 자원을 계속 할당받지 못하는 상태.
-
교착상태 vs 기아상태