Skip to content

Latest commit

 

History

History
16 lines (10 loc) · 1.88 KB

[#22] 데드락 회피 기법인 은행원 알고리즘이 무엇인가요.md

File metadata and controls

16 lines (10 loc) · 1.88 KB

데드락 회피 기법인 은행원 알고리즘이 무엇인가요?

데드락을 처리하는 방법으로는 예방, 회피, 탐지 그리고 회복을 통한 방법들이 있습니다.

예방 기법은 데드락 발생 조건 중 하나를 제거하면서 해결해가는 방식으로 자원의 낭비가 심하다는 단점이 있습니다.

회피 기법은 데드락 발생 시 피해나가는 방법으로 은행원 알고리즘을 사용하게 됩니다. 은행에서 모든 고객의 요구가 충족되도록 현금을 할당하는 곳에서 유래되었습니다.

은행원 알고리즘은 데드락에 빠질 가능성이 있는지 판단하기 위해 상태를 safe state와 unsafe state로 나누고 은행원 알고리즘에서 운영체제는 안전 상태를 유지 할 수 있는 요구만 수락하고 불안전 상태를 초래할 사용자의 요구는 나중에 만족될 수 있을때까지 계속 거절하게 됩니다. 이러한 알고리즘의 단점으로는 할당할 수 있는 자원의 수가 일정해야 하며 항상 불안전 상태를 방지해야 하므로 자원의 이용도가 낮아지게 됩니다. 따라서 현재 채택하고 있는 방식은 아닙니다. 탐지 기법은 자원 할당 그래프를 통해 데드락을 탐지하는 방법입니다. 자원 요청 시, 탐지 알고리즘을 실행시켜 이에 대한 오버헤드가 발생합니다.

회피 기법은 데드락을 발생시킨 프로세스를 종료하거나, 할당된 자원을 해제시켜 회복하는 방법입니다. 프로세스를 종료하기 위해서는 데드락 상태의 프로세스를 모두 중지시키거나 데드락이 제거될 때까지 하나씩 프로세스를 중지시킬 수 있습니다. 또한 자원 선점 방법을 통해 데드락 상태의 프로세스가 점유하고 있는 자원을 선점해 다른 프로세스에게 할당하여 회복 시킬 수 있습니다.