Os
25 Aug 2020

교착상태(deadlock), 기아상태(starvation)

교착상태(DeadLock)


교착상태란?

  • 두 개 이상의 작업이 서로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에

    다음 단계로 진행하지 못하는 상태


교착상태 발생 조건(4가지 모두 만족해야 deadlock걸림)

  • 상호배제 : 프로세스가 사용하는 자원은 다른 프로세스와 공유할 수 없는 배타적인 자원이고

    배타적인 자원은 임계구역으로 보호되기 때문에 다른 프로세스가 동시에 사용할 수 없다.

    따라서 배타적인 자원을 사용하면 교착상태가 발생한다.


  • 비선점 : 한 프로세스가 사용중인 자원은 중간에 다른 프로세스가 빼앗을 수 없는 비선점 자원

    이어야한다.


  • 점유대기 : 프로세스가 자원을 할당받은 상태에서 다른 자원을 기다리는 상태여야 한다.


  • 원형대기 : 점유와대기를 하는 프로세스간의 관계가 원을 이루어야한다.


기아상태(starvation)

  • 특정 프로세스의 우선순위가 낮아서 원하는 자원을 계속 할당받지 못하는 상태.

  • 교착상태 vs 기아상태

    • 교착상태는 여러 프로세스가 동일 자원 점유를 요청할 때 발생

    • 기아상태는 여러 프로세스가 부족한 자원을 점유하기 위해 경쟁할 때,

      ### 특정 프로세스는 영원히 자원이 할당 되지 않는 경우를 의미한다.


Tags:
0 comments