본문 바로가기

교착상태

교착상태(DeadLock)

  복수의 프로세스가 가능하지 못한 상태를 무한정 기다리고 있는 상태를 말한다.

  두 개 이상의 프로세스가 하나의 자원을 공유하여 사용하고 있을 때 서로가 사용할 자원을 요구하지만 요구를 영원히 들어줄 수 없는 상태를 말한다.

 

*교착상태가 발생할 필요 충분 조건 4가지

상호배제(Mutual Exclusion)

비 선점(Non Preemption)

점유와 대기(Hold & Wait)

환형 대기(Circular Wait,순환대기)

 

-상호배제 조건으로 프로세스들은 필요로 하는 자원에 대해 배타적인 통제권을 갖는다.  즉 임계구역을 두 개 이상의 프로세스가 동시에 접근하지 못하도록 하는 과정에서 발생할 수밖에 없다.

 

-비선점 조건으로 프로세스가 소유하고 있는 자원은 다른 프로세스에 의해 선점될 수 없다. 즉 하나의 프로세스가 공유 자원을 사용하는 중에 중단되었을때, 중단된 프로스ㅔ스를 선점할 수 없기 때문에 발생할 수밖에 없다.

 

-환영대기 조건으로 각 프로세스는 순환적으로 다음 프로세스가 요구하는 자원을 가지고 있다. 서로 물고 물리는 상황 때문에 발생할 수밖에 없다.

 

-점유와 대기 조건으로 프로세스는 할당된 자원을 가진 상태에서 다른 자원을 기다린다. 점유한 프로세스, 대기하는 프로세스가 존재하는 한 교착 상태가 발생할 수밖에 없다.