[데드락 회피]
데드락을 회피하기 위해선 사전 정보가 필요하다.
→ 1 ) 얼마나 많은 자원을 이용할 것인지
→ 2 ) 할당 된 자원의 수
→ 3 ) 이용 가능한 자원의 수
[안전한 상태]
데드락이 발생하지 않는 상태를 안전한 상태라고 한다.
→ 모든 프로세스가 실행 후 끝날 수 있는 상태
→ safe 상태에서 unsafe상태가 되는 요청을 승인하지 않고 대기시킴으로써 데드락을 회피한다.
[데드락 회피 알고리즘]
1 ) 자원 할당 그래프(O(n^2)) : 타입당 자원의 개수가 하나일 때 사용
→ 모든 간선을 지우고 프로세스 노드들을 연결함
→ 만약 싸이클이 생기면 데드락!
2 ) 뱅크 알고리즘 : 타입당 여러개의 자원을 요구할 때 사용
→ 최대 몇 개의 자원을 사용하는지에 대한 사전 정보 필요
→ 프로세스가 자원을 요청할 때 기다려야할 수도 있음.(데드락이 발생할 가능성이 있는 경우)
→ 프로세스는 모든 필요한 자원을 얻은 후에 실행할 수 있으며 사용 후 모든 자원을 반환해야함
데드락을 회피하기 위해선 사전 정보가 필요하다.
→ 1 ) 얼마나 많은 자원을 이용할 것인지
→ 2 ) 할당 된 자원의 수
→ 3 ) 이용 가능한 자원의 수
[안전한 상태]
데드락이 발생하지 않는 상태를 안전한 상태라고 한다.
→ 모든 프로세스가 실행 후 끝날 수 있는 상태
데드락 회피에서는 safe 상태에서 unsafe상태가 되는 요청을 승인하지 않고 대기시킴으로써 데드락 문제를 해결한다.
[데드락 회피 알고리즘]
1 ) 자원 할당 그래프 : 타입당 자원의 개수가 하나일 때 사용
→ 모든 간선을 지우고 프로세스 노드들을 연결함
→ 만약 싸이클이 생기면 데드락!