-
OS - 은행원 알고리즘CS/OS 2021. 2. 20. 19:37
은행원 알고리즘
은행원 알고리즘 이란?
- 교착상태 회피 알고리즘이다.
- OS는 안전상태를 유지할 수 있는 요구만을 수락하고 불안정한 상태를 초래할 사용자의 요구는 나중에 수락할 수 있는 상태가 될때까지 계속 거절한다.
- 동작 과정이 은행에 돈을 빌리러 온 고객들과 돈을 빌려줄 은행의 관계와 유사하다.
안전상태
- 안전상태: 시스템이 교착상태를 일으키지 않으면서 각 프로세스가 요구한 최대 요구량만큼 필요한 자원을 할당해 줄 수 있는 상태이다.
- 불안전상태: 교착상태이기 위한 조건중에 하나로 불안전 상태에서만 교착상태가 발생한다. 그러나 불안전 상태라고 해서 무조건 교착상태가 발생하는 것은 아니다.
- 시스템이 항상 안전상태를 유지할 수 있게 하는 것이 바로 은행원 알고리즘이다.
은행원 알고리즘 필요 요건
- Max: 각 고객들이 은행에게 빌려달라고 요구하는 돈(자원).
- Allocated: 각 고객들이 현재 빌린 돈(자원).
- Available: 은행이 보유한 돈, 빌려줄 수 있는 돈(자원).
은행원 알고리즘의 장단점
- 장점
- 항상 안전상태를 유지할 수 있다.
- 단점
- 최대 자원 요구량을 미리 알아야 한다. -> 안전 상태인지 불안전 상태인지를 판단하는데 필요하다.
- 항상 불안전 상태를 방지해야 하므로 자원 이용도가 낮다. -> 불안전 상태가 될 가능성이 있다면 자원을 이용하지 않으므로 이용도가 낮아진다.
reference
velog.io/@hygoogi/%EA%B8%B0%EC%88%A0-%EB%A9%B4%EC%A0%91-%EC%A7%88%EB%AC%B8-%EB%AA%A8%EC%9D%8C
'CS > OS' 카테고리의 다른 글
[OS] CPU 작동원리 (0) 2021.08.06 [OS]Process VS Thread (0) 2021.07.10 OS - CPU스케줄링 (0) 2021.02.16 OS - 프로세스와 쓰레드 (0) 2021.02.15 OS - 메모리 (0) 2021.02.09