2013년 2월 19일 화요일

은행가 알고리즘

문)은행가 알고리즘
답)
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으로 자원 변동시마다 체크 오버헤드 존재
 나. 프로세스 시작 시 전체 사용 자원에 대한정보를 제공하여야 하는 비현실성 존재
 다. 항상 안전상태로 유지하기 위하여 자원의 활용이 비효율적
 라. 분산환경의 정보유지 및 자원 공유를 위한 개념에 활용하는 사례 있음
끝.