은행가 알고리즘
I. 교착상태 회피 알고리즘, 은행가 알고리즘 개요
graph TD Root[교착상태해결] --> A[예방] Root --> B[회피] Root --> C[발견] Root --> D[회복] A --- A1[상호배제/비선점<br>등 4조건 예방] B --- B1[*은행가<br>알고리즘] C --- C1[자원할당] D --- D1[Kill 등]
| 구분 | 내용 |
|---|---|
| 개념 | 운영체제는 “자원 수 감시”하고 프로세스는 “자원요청” 하는 교착상태 회피 알고리즘 |
II. 은행가 알고리즘 동작원리 및 구성요소
가. 은행가 알고리즘 동작원리
graph LR A[준비<br>Process ready] --> B[자원 할당 요청<br>request] B --> C{안전<br>상태?} C -- 안전 --> D[할당<br>Allocate] C -- 교착 --> E[거부]
- Available, Max, Allocation, Need 관리
나. 은행가 알고리즘 구성요소 설명
| 구성요소 | 설 명 |
|---|---|
| Available | - 가용한 자원의 수 Available[i,j] = k |
| Max | - 최대 자원수, Max[i,j] = k |
| Allocation | - 자원 할당 현황 Allocation[i,j] = k |
| Need | - 필요 자원수, Need[i,j] = k |
- 기타 bakery 알고리즘으로 교착상태 예방 가능
III. 교착상태 예방 알고리즘, bakery 알고리즘
graph LR A((교착상태)) B((Banker's<br>알고리즘)) C((Bakery<br>알고리즘)) A -->|최대자원<br>검토| B A -->|티켓형태<br>자원계산| C
- Bakery 알고리즘은 자원 대기 순서 티켓형태