상호 배제에 의해 나타나는 문제점으로, 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상을 의미함
프로세스는 실행을 위해 여러자원을 필요로 하는데, 어떤 자원은 갖고 있으나 다른자원을 갖지 못할 경우 대기 상태에 들어가서 기다려야함. 자원은 한정되어 있는데 여러 프로세스가 같이 동작하는 상황에서 발생함.
운영체제는 이러한 자원을 프로세스들에게 잘 할당 해줘야 하는데 잘 못해주면 교착상태에 빠짐. 프로세스가 작동할 때는 거미줄처럼 이어져 있기 때문에 교착상태에 빠지면 전체가 멈추게 되는 위험상태에 빠짐. 교착상태를 해결하는 일은 매우 중요함
위의 네가지 조건을 허용하지 않는 것이 예방 방법
but, 상호배제와 점유&대기 조건을 배제하는 것은 좋지 않음
주로 은행원 알고리즘(뱅커 알고리즘, 다익스트라 제안)사용된다.
은행원 알고리즘 설명 :
https://jhnyang.tistory.com/102?category=815411
참고: https://jhnyang.tistory.com/4
참고 : https://coding-factory.tistory.com/311