← 질문 목록
#177깊이 0
데드락을 해결하기 위한 회피 전략은 무엇인가?
은행원 알고리즘을 사용하여 자원 할당 시 안전 상태를 유지하는 것이다. 자원을 할당한 후에도 모든 프로세스가 완료될 수 있는 경로가 있는지 확인한다.
- 자원 요청
그다음은 안전 상태 확인입니다. 할당 가능한 자원이 있는지 검사
안전 상태 확인그다음은 자원 할당입니다. 모든 프로세스가 완료될 수 있는 경로가 있다면 할당
자원 할당그다음은 자원 반납입니다. 프로세스 완료 후 자원을 시스템에 반납
자원 반납
회피는 네 조건을 그대로 둔 채 요청마다 따진다. 지금 내주고도 모두가 끝날 수 있는 순서가 남는지 보고 남을 때만 준다. 남지 않으면 줄 수 있는 자원이어도 기다리게 한다.
반면 예방은 네 조건 중 하나를 아예 못 생기게 막는다. 회피는 조건을 그대로 두고 그때그때 판단한다.
은행원 알고리즘은 프로세스마다 최대 얼마까지 쓸지를 미리 알아야 한다. 그 값을 내놓을 수 없어 쓰이는 곳이 좁다.