교착상태 Dead lock
두 개 이상의 작업이 서로 상대방의 작업이 끝나기만을 기다리는 무한 대기 상태 예) 스레드 A, B가 존재하고 자신의 자원은 반환하지 않은 상태에서 상대방의 자원을 요구하는 상태 데드락이 생기기 위한 조건 1. 상호배제 : 둘 이상의 스레드는 동시에 공유자원을 사용할 수 없다 2. 순환대기 : 서로 원하는 자원이 있는 상대방이 순환적으로 연결되어 있다 3. 비선점 : 수행이 완료되기 전까지는 자원을 반납하지 않고, 상대방도 가져갈 수 없다 4. 점유대기 : 자신의 자원을 반환하지 않은 상태에서 상대방의 자원을 요구하고 있다 데드락을 방지하기 위해서는 조건 중 하나라도 성립하지 않으면 된다. 하지만 자원의 낭비가 심하다는 단점이 있다
2019. 10. 31. 18:36