문)은행가 알고리즘
답)
1. 교착상태 해결을 위한 은행가 알고리즘
가. 은행가 알고리즘(Banker's Algorithm)의 정의
- 시스템의 프로세스와 자원을 은행원 프로세스로 관리하여 교착상태의 발생이 가능한 불안전상태가 되지 않도록 안전상태로 유지하는 교착생태 회피 기법
나. 은행가 알고리즘의 측정 요소
- Available : 가능한 모든 자원의 수
- Max : 최대 자원 요구 수
- Need : 필요로 하는 자원의 수
- Allocation : 할당된 자원의 수
2. 은행가 알고리즘의 개념도 및 상태 판단 방법
가. 은행가 알고리즘의 개념도
- [safe]
자원 프로세스
ㅁ -----> P1
ㅁ <------P1의 3개의 자원 추가 요청
ㅁ
ㅁ ------> P2
ㅁ ------> P2
<------P2가 2개의 자원 추가 요청
1) 전체 5개의 자원 중 초기 3개 자원 할당
2) P1 3개, P2 2개 추가 자원 요청
3) 미할당 자원 2개를 P2에 할당 P1은 할당 유보
4) P2 완료시 반납되는 자원 4개중 3개를 P1에 할당 가능하여 safe 상태유지
- [unsafe]
자원 프로세스
ㅁ -----------> P1
ㅁ -----------> P1
ㅁ <--- P1의 2개의 자원 추가 요청
ㅁ -----------> P2
ㅁ -----------> P2
<---P2가 2개의 자원 추가 요청
1) 전체 5개의 자원 중 초기 4개 자원 할당
2) P1 2개, P2 2개 추가 자원 요청
3) 미할당 프로세스가 자원의 상태를 모니터링
나. 은행가 알고리즘의 상태 판단 방법
- safe : 시스템의 모든 프로세스가 요구하는 자원을 모두 할당하여 모든 프로세스가 정상적으로 완료 될 수 있는 상태
- safety algorithm : 자원 요청의 관계를 판단하여 안전상태를 판단하는 알고리즘
3. 은행원 알고리즘의 고려사항
가. 은행원 프로세스에서 safety algorithm으로 자원 변동시마다 체크 오버헤드 존재
나. 프로세스 시작 시 전체 사용 자원에 대한정보를 제공하여야 하는 비현실성 존재
다. 항상 안전상태로 유지하기 위하여 자원의 활용이 비효율적
라. 분산환경의 정보유지 및 자원 공유를 위한 개념에 활용하는 사례 있음
끝.