중 | Banker's Algorithm(은행가알고리즘) | [정의]Banker 알고리즘의 정의 - 운영체제는 자원의 상태를 감시하고 사용자 프로세스는 사전에 자기작업에서 필요한 자원의 수를 제시하는 교착상태 회피 알고리즘 프로세스, 자원요청 AMAN(AVAILABLE MAX ALLOCATE NEED) AMAN+R(Available, Max, Allocation, Need, Request) |
토픽 이름 (상) | Banker's Algorithm |
분류 | OS > 병행제어 > Banker's Algorithm |
키워드(암기) | AMAN+R(Available, Max, Allocation, Need, Request) |
암기법(해당경우) |
기출문제
번호 | 문제 | 회차 |
1 | 다중 프로그래밍 운영체제 하에서 발생하는 교착상태(Dead Lock)를 회피(Avoidance)하기 위한 Banker's Algorithm을 설명하시오. | 기_86.관.4.2 |
2 | 교착상태(Deadlock)의 필요조건과 교착상태 회피 방법으로 많이 사용되고 있는 Banker 알고리즘을 설명하시오. | 기_101.관.3.3 |
3 | 교착상태 회피를 위한 Banker's Algorithm을 설명하시오. | 모1405-관-2-5 |
4 | 은행가 알고리즘(Banker's Algorithm)을 이용하여 프로세스 수행 순서에 대해 설명하시오. (단, 프로세스 자원 요청은 P1, P2, P3, P4로 진행) | 모1505-관-1-13 |
5 | 교착상태(Deadlock)가 발생하는 필수조건과 해결방안을 설명하고, 회피방법인 Banker's Algorithm을 설명하시오. | 모1711-응-2-4 |
6 | 교착상태를 회피하기 위한 은행가 알고리즘을 설명하고, 시스템의 구성이 다음과 같을 때 은행가 알고리즘을 사용하여 안전한 상태로 수행할 수 있도록 프로세스 수행 순서를 제시하시오 - 프로세스 - P0 , P1 , P2 , P3 , P4 (프로세스 자원 요청은 P0, P1, P2, P3, P4 순으로 진행) - 자원 - A : 10 B : 5 , C : 7 (세가지 유형과 각 유형의 인스턴스 수) - 시간 T0 일 때 시스템의 상태는 다음과 같음. |
모1711-관-3-3 |
I. 교착상태 회피 Banker 알고리즘의 개요
가. Banker 알고리즘의 정의
- 운영체제는 자원의 상태를 감시하고 사용자 프로세스는 사전에 자기작업에서 필요한 자원의 수를 제시하는 교착상태 회피 알고리즘
- 운영체제는 사용자 프로세스로부터 자원의 요청이 있으면 모든 프로세스가 일정 기간 내에 성공적으로 끝날 수 있는 안전 상태인지를 면밀하게 분석하는 교착상태 회피 알고리즘
- 운영체제는 안전상태를 유지할 수 있는 요구만을 수락하고 불안전 상태를 초래할 사용자의 요구는 나중에 만족될 수 있을 때까지 계속 거절하는 교착상태 회피 알고리즘
나. Banker 알고리즘의 동작 개념도
![]() |
II. Banker 알고리즘의 자료구조 및 처리 프로세스
가. Banker 알고리즘의 자료구조(n:프로세서 수, m:자원의 종류 수)
자료명 | 자료형태 | 설명 | 수식 |
Available | m의 vector | 사용 가능한 자원의 수 | Available[j] = K 자원종류 Rj중 K개 사용가능 |
Max | n x m 행렬 | 프로세스 별 최대 자원의 요구 | Max[i, j] = K Pi는 자원종류 Rj중 최대 K개요청 |
Allocation | n x m 행렬 | 현재 프로세스 별 할당되어 있는 자원 수 | Allocation[i, j] = K Pi는 현재 자원종류 Rj를 K개 할당 받고 있음 |
Need | n x m 행렬 | 프로세스 별 남아 있는 자원의 수 | Need[i, j]=(Max – Allocation) Pi가 작업 완료를 위해 필요한 자원유형 Rj의 수 |
Request | n x m 행렬 | 프로세스가 요청한 자원의 수 | Request[i, j] = K Pi는 자원종류 Rj를 K개 더 요구함 |
나. Banker 알고리즘 처리 프로세스

III. Banker 알고리즘의 구조(사례)
-풀이 2), 3) P2 – R2 – 4를 2로 확인 필요
- 최대 요구 자원 수 (Maximum Claim)에 대한 정보가 있을 경우를 가정 |
![]() |
1) 현재 사용 가능한 리소스의 양을 구한다 (Available)![]() |
2) 추가 요구량을 구한다 (Request = Max – Allocation)![]() |
3) 추가 요구 자원이 현재 여유자원보다 적은 프로세스(i)를 찾는다 (수행을 끝내기 위한 충분한 자원을 확보한 프로세스 검사) [ (Request (i) ç Available(i) ) ![]() |
4) 수행 가능한 프로세스가 점유한 자원을 여유 자원으로 바꿈 (끝내고 반환한 경우로 가정)한 후에 3번부터 반복 (Available = Available + Allocation) ![]() |
IV. 은행가 알고리즘(Banker’s Algorithm)의 한계 및 교착상태 방지 대응전략
- 일정한 수의 자원과 사용자에서만 가능하며 최대 자원 필요량을 사전에 등록해야 함
- 모든 요구를 유한 시간 내에서 수행해야 하며 프로세스들은 할당 받은 자원을 유한 시간 내 반환해야 함
- 따라서 교착상태 발생을 억제하기 위해서는 예방, 회피, 탐지, 복구 방법을 병행하여 사용하고 각 자원 유형별 특성을 파악하여 대응전략을 구분운영하는 것이 필요



“끝”
반응형
'정보관리기술사 > CA_OS' 카테고리의 다른 글
수직적 프로그래밍 vs 수평적 프로그래밍 (0) | 2024.02.18 |
---|---|
운영체제특권레벨 (0) | 2023.11.28 |
모니터/Monitor 동기화 (1) | 2023.11.26 |
교착상태(Deadlock) (0) | 2023.11.25 |
우선순위 역전 (0) | 2023.11.24 |