#DeadLock

- 프로세스가 자원을 얻지 못해 다음 처리를 하지 못하는 상태로, ‘교착 상태’라고도 하며 시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생합니다.

  • 세마포가 Ready Queue 를 가지고 있고, 둘 이상의 프로세스가 Critical Section 진입을 무한정 기다리고 있고, Critical Section 에서 실행되는 프로세스는 진입 대기 중인 프로세스가 실행되야만 빠져나올 수 있는 상황을 지칭한다.

#해결법

#예방법

  • 상호 배제 부정
    • 여러 개의 프로세스가 공유자원을 사용할수 있도록 한다
  • 점유 대기 부정
    • 프로세스가 실행되기 전 필요한 모든 자원을 할당한다
  • 비선점 부정
    • 자원을 점유하고 있는 프로세스가 다른 자원을 요구할때 점유하고 있는 자원을 반납하고, 요구한 자원을 사용하기 위해 기다리게 한다.
  • 순환 대기 부정
    • 자원에 고유한 번호를 할당하고, 번호 순서대로 자원을 요구하도록 한다.

#회피법

  • 은행원 알고리즘
    • 프로세스가 자원을 요구할 때 시스템은 자원을 할당한 후에도 안정 상태로 남아있게 되는지를 사전에 검사하여 교착 상태를 회피하는 알고리즘