※ 질문/내용오류/공유할 내용이 있다면 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 Avoidance (Banker's Algorithm) (5) | 2013.02.03 |
| [OS] Deadlock Prevention and Deadlock Avoidance (0) | 2013.02.03 |
| [OS] Deadlock (0) | 2013.02.03 |
| [OS] Remote Procedure Call (0) | 2013.01.22 |




댓글을 달아 주세요
지나가는이 2013.12.05 19:05 댓글주소 수정/삭제 댓글쓰기
Need의 테이블 숫자들이 잘못된 것 같네요.
아 안녕하세요!!! 그런가요? 요즘 이 내용을 안 본지 한참이라;;ㅋㅋㅋ 조만간 다시 공부해보고 고쳐볼게요~~~ 이렇게 포스팅에 대한 지적 참으로 저는 좋습니다!ㅋㅋㅋㅋ 감사해요~~~
공부할려고봣는데 2014.05.27 21:49 댓글주소 수정/삭제 댓글쓰기
need 테이블의 숫자들이 아직두 잘못되어있는것같네요
os는 공룡책 2016.12.15 01:19 댓글주소 수정/삭제 댓글쓰기
need의 숫자들이 지금도 잘못되어있네요
네네네 고쳐놨어요!!ㅋ 요즘은 다른 공부를 하다보니.... 많이 늦네요