※ 질문/내용오류/공유할 내용이 있다면 jinkilee73@gmail.com으로 메일 주세요 :-)


Banker's Algorithm은 쉽게 말해서 은행원이 돈 빌려주는 것처럼 생각하면 된다.

은행원이 돈이 있으면 돈을 빌려주겠지? 돈이 없으면? 안 빌려주겠지? 그런 것이다. 예를 통해 이해해보자.


Situation

자원 A, B, C가 있다. 각각 10, 5, 7개의 Instance를 가지고 있다. 그런 상황에서 어떤 시간 t0에 다음과 같은 상황에 놓여있다고 하자.


# all resource


# Allocation, Max, Need (단, Need = Max - Allocation)


# Available resource ( = All resource - sum(Allocation))

이 상태에서 만일 P1가 추가적으로 자원 A의 Instance 하나와 자원 C의 Instance 두 개를 요구했다고 해보자. 현재 줄 수 있는 자원은 (3, 3, 2)인데 P1이 요구한 것은 (1, 0, 2)이다. 아직은 더 줄 수 있다. 


# All resource


# Allocation, Max, Need (단, Need = Max - Allocation)


# Available resource

그래서 위와 같은 상태가 된다.

위의 상태의 그래프는 <P1, P3, P4, P0, P2>순서로 수행을 하면 Safe State를 만족시킬 수 있다. 실제로 해보면 알 것이다. :=)


※ 위의 순서는 어떻게 찾아내느냐고? Safety Algorithm이라는 것이 있다. 그것을 찾아보면 알 수 있다.


마지막으로 Deadlock Detection을 다음 포스팅에서 설명하겠다.


'Operating Systems' 카테고리의 다른 글

[OS] File System  (4) 2013.05.17
[OS] Deadlock Detection  (2) 2013.02.03
[OS] Deadlock Prevention and Deadlock Avoidance  (0) 2013.02.03
[OS] Deadlock  (0) 2013.02.03
[OS] Remote Procedure Call  (1) 2013.01.22
Posted by 빛나유
,