은행원 알고리즘 Opera팅 시스템 [예시]

뱅커 알고리즘이란 무엇입니까?

은행원의 알고리즘 교착 상태를 피하기 위해 은행 시스템에서 주로 사용됩니다. 대출이 제공될지 여부를 식별하는 데 도움이 됩니다.

이 알고리즘은 모든 리소스에 사용 가능한 최대량을 결정하기 위해 할당을 안전하게 시뮬레이션하는 데 사용됩니다. 또한 할당을 계속할지 여부를 결정하기 전에 가능한 모든 활동을 확인합니다.

예를 들어, 특정 은행에 X명의 계좌 보유자가 있고, 이들 계좌의 총 금액은 G입니다.

은행이 자동차 대출을 처리할 때, 소프트웨어 시스템은 은행이 보유하고 있는 총 자금(G+ 정기예금 + 월수입제도 + 골드 등)에서 자동차 구입을 위해 부여된 대출 금액을 뺍니다.

또한 차이가 G보다 큰지 아닌지 확인합니다. 모든 계좌 소유자가 동시에 돈 G를 인출하더라도 은행에 충분한 돈이 있는 경우에만 자동차 대출을 처리합니다.

은행가 알고리즘 표기법

Banker 알고리즘에 사용되는 중요한 표기법은 다음과 같습니다.

  • X: 시스템의 전체 프로세스 수를 나타냅니다.
  • Y: 시스템에 존재하는 총 리소스 수를 나타냅니다.

유효한

[I: Y]는 사용 가능한 리소스를 나타냅니다.

Max

[l:X,l:Y]: j 타입 또는 프로세스 i의 최대 자원 개수 표현

배당

[l:X,l:Y]. j 유형의 리소스를 받은 프로세스를 나타냅니다.

필요

앞으로 얼마나 더 많은 자원을 할당할 수 있는지 표현

Banker 알고리즘의 예

다음과 같은 리소스가 있다고 가정해 보겠습니다.

  • 5개의 펜 드라이브
  • 2 프린터
  • 4 스캐너
  • 3개의 하드 디스크

여기서는 총 리소스를 나타내는 벡터(사용 가능 = (5, 2, 4, 3))를 만들었습니다.

XNUMX개의 프로세스가 있다고 가정합니다. 사용 가능한 리소스는 아래 매트릭스 표에 따라 이미 할당되어 있습니다.

프로세스 이름 펜 드라이브 인쇄기 스캐너 하드 디스크
P 2 0 1 1
Q 0 1 0 0
R 1 0 1 1
S 1 1 0 1
금액 4 2 2 3

여기서 할당된 리소스는 다음 열의 합계입니다.

할당됨 = (4, 2, 2, 3).

또한 모든 프로세스에 필요한 각 리소스의 수를 표시하는 매트릭스를 만듭니다. 이 행렬은 필요=(3,0,2,2)

프로세스 이름 펜 드라이브 인쇄기 스캐너 하드 디스크
P 1 1 0 0
Q 0 1 1 2
R 2 1 0 0
S 0 0 1 0

사용 가능한 벡터는 다음과 같습니다.

사용 가능=사용 가능-할당됨

= (5, 2, 4, 3) -(4, 2, 2, 3)

=(1, 0, 2, 0)

자원 요청 알고리즘

리소스 요청 알고리즘을 사용하면 특정 프로세스가 리소스를 요청할 때 시스템 동작을 나타낼 수 있습니다.

다음 단계를 통해 이를 이해해 보겠습니다.

단계 1) 모든 리소스의 총 요청 인스턴스가 프로세스보다 적으면 2단계로 이동합니다.

단계 2) 각 리소스 유형의 요청된 인스턴스가 각 유형의 사용 가능한 리소스보다 적으면 다음 단계로 처리됩니다. 그렇지 않으면 충분한 리소스를 사용할 수 없기 때문에 프로세스가 대기해야 합니다.

단계 3) 아래 주어진 Pseudocode와 같이 리소스가 할당됩니다.

Available = Available – Request (y)
Allocation(x) = Allocation(x) + Request(x)
Need(x) = Need(x) - Request(x)

이 마지막 단계는 시스템이 리소스가 할당되었다고 가정해야 하기 때문에 수행됩니다. 할당 후 사용 가능한 리소스가 적어야 합니다.

뱅커 알고리즘의 특징

뱅커 알고리즘의 중요한 특징은 다음과 같습니다.

  • 적어도 하나의 클라이언트 요구 사항을 충족하는 많은 리소스를 유지하십시오.
  • 프로세스가 모든 리소스를 얻을 때마다 제한된 기간 내에 리소스를 반환해야 합니다.
  • 프로세스가 자원을 요청하면 대기해야 함
  • 시스템의 리소스 수가 제한되어 있습니다.
  • 최대 리소스 할당을 위한 고급 기능

Banker 알고리즘의 단점

Banker's Algorithm 사용의 단점/단점은 다음과 같습니다.

  • 처리하는 동안 프로세스가 최대 요구량을 변경하는 것을 허용하지 않습니다.
  • 제한된 시간 내에 모든 요청을 승인할 수 있지만 XNUMX년은 고정된 기간입니다.
  • 모든 프로세스는 최대 리소스 요구 사항을 미리 알고 명시해야 합니다.

요약

  • Banker's 알고리즘은 주로 은행 시스템에서 다음과 같이 사용됩니다. 이중 자물쇠. 대출이 제공되는지 여부를 식별하는 데 도움이 됩니다.
  • 은행가 알고리즘에 사용되는 표기법은 1) 사용 가능, 2) 최대, 3) 할당, 4) 필요입니다.
  • 리소스 요청 알고리즘을 사용하면 특정 프로세스가 리소스를 요청할 때 시스템 동작을 나타낼 수 있습니다.
  • Banker의 알고리즘은 적어도 한 명의 고객의 요구 사항을 충족하는 많은 리소스를 유지합니다.
  • 뱅커 알고리즘의 가장 큰 단점은 프로세스가 처리하는 동안 최대 수요를 변경할 수 없다는 것입니다.