KO
내 도구

은행원 알고리즘 계산기 (안전 순서와 교착 상태 탐지)

은행원 알고리즘을 실행해 Need 행렬, 단계별 안전성 검사와 안전 순서, 프로세스의 자원 요청 허용 여부, 교착 상태 탐지까지 한 번에 구합니다.

상태
안전
모든 프로세스가 끝날 수 있음
안전 순서
<P1, P3, P4, P0, P2>
Available(가용)
3 3 2
A B C

한 상태에 안전 순서가 여러 개 있을 수 있으며, 이 결과는 선택한 탐색 순서를 따릅니다.

안전은 어떤 순서로든 모든 프로세스가 최대치를 얻고 끝날 수 있다는 뜻입니다. 불안전은 아직 교착 상태라는 뜻이 아니라, 교착 상태를 더는 배제할 수 없다는 뜻입니다.

Allocation, Max, Need (= Max − Allocation)
프로세스Allocation(할당) A B CMax(최대) A B CNeed(필요) A B C
P00 1 07 5 37 4 3
P12 0 03 2 21 2 2
P23 0 29 0 26 0 0
P32 1 12 2 20 1 1
P40 0 24 3 34 3 1
안전성 알고리즘 단계
단계프로세스Need(필요)이전 Work이후 Work이유
1P11 2 23 3 25 3 2Need(필요) ≤ Work이므로 끝나고 할당된 자원을 반납할 수 있음
2P30 1 15 3 27 4 3Need(필요) ≤ Work이므로 끝나고 할당된 자원을 반납할 수 있음
3P44 3 17 4 37 4 5Need(필요) ≤ Work이므로 끝나고 할당된 자원을 반납할 수 있음
4P07 4 37 4 57 5 5Need(필요) ≤ Work이므로 끝나고 할당된 자원을 반납할 수 있음
5P26 0 07 5 510 5 7Need(필요) ≤ Work이므로 끝나고 할당된 자원을 반납할 수 있음
내 도구 →
광고

은행원 알고리즘은 여러 종류의 자원이 있는 시스템이 안전 상태인지, 즉 모든 프로세스가 앞으로 필요할 수 있는 자원을 얻어 끝낼 수 있는 순서가 존재하는지, 그리고 새 요청을 안전성을 잃지 않고 허용할 수 있는지를 판단합니다. 이 계산기는 Need 행렬을 만들고, Work 벡터를 쓰는 안전성 알고리즘을 단계별로 실행하며, 자원 요청을 확인하고, Request 행렬에 대해 관련된 교착 상태 탐지 알고리즘도 실행합니다.

사용 방법

  1. Allocation 행렬을 한 줄에 프로세스 하나씩 입력합니다(P0: 0 1 0).
  2. Max 행렬(교착 상태 탐지라면 Request 행렬)을 같은 순서로 입력합니다.
  3. Available 벡터 또는 각 자원의 전체 인스턴스 수를 입력합니다.
  4. 원하면 P1 1 0 2 같은 요청을 입력하고 허용되는지 확인합니다.

계산식

Need = Max − Allocation · Work = Available; 반복: Need ≤ Work인 Pᵢ를 찾아 Work = Work + Allocationᵢ · 모든 프로세스가 끝나면 안전

Pᵢ의 요청이 Need를 넘으면 오류, Available을 넘으면 대기이며, 그 밖에는 할당했다고 가정한 뒤의 상태가 여전히 안전할 때만 허용됩니다. 교착 상태 탐지는 Need 대신 현재 Request를 쓰고, 아무것도 점유하지 않은 프로세스는 처음부터 끝난 것으로 표시하며, 끝나지 못하는 프로세스가 교착 상태입니다. 안전 순서는 여러 개일 수 있으며 탐색 순서 옵션으로 흔한 두 가지 추적 방식을 재현할 수 있습니다.

예시

샘플은 Silberschatz의 『Operating System Concepts』 교재 예제입니다. 프로세스 5개, 자원 A, B, C, Available (3, 3, 2)입니다. Need는 P0 (7,4,3), P1 (1,2,2), P2 (6,0,0), P3 (0,1,1), P4 (4,3,1)입니다. P1이 먼저 끝나고(Work는 5 3 2), 이어서 P3 (7 4 3), P4 (7 4 5), P0 (7 5 5), P2 (10 5 7)가 끝나므로 상태는 안전하고 순서는 <P1, P3, P4, P0, P2>입니다. P1의 요청 (1, 0, 2)는 허용됩니다.

자주 묻는 질문

불안전 상태는 교착 상태인가요?

아닙니다. 불안전은 모든 프로세스가 끝난다고 더는 보장할 수 없다는 뜻이며, 교착 상태가 생길 수도 있고 안 생길 수도 있습니다. 교착 상태는 일부 프로세스가 실제로 서로를 영원히 기다리는 상태입니다.

제 안전 순서가 교재와 다른 이유는 무엇인가요?

안전 상태에는 안전 순서가 여러 개인 경우가 많습니다. 교재마다 탐색을 추적하는 방식이 조금 다르니 탐색 순서 옵션을 수업에 맞추세요. 알고리즘이 찾은 순서는 모두 유효합니다.

Max와 Request는 어떻게 다른가요?

Max는 프로세스가 앞으로 요구할 수 있는 최대치입니다(교착 상태를 미리 피하는 데 사용). Request는 프로세스가 지금 기다리고 있는 양입니다(이미 발생한 교착 상태를 탐지하는 데 사용).

출처

최종 업데이트:

인용·퍼가기
APA

kakaoCalc. (2026, November 8). 은행원 알고리즘 계산기 (안전 순서와 교착 상태 탐지). https://kakao.mobile/ko/tools/banker-s-algorithm-tool/

MLA

“은행원 알고리즘 계산기 (안전 순서와 교착 상태 탐지).” kakaoCalc, 8 Nov. 2026, kakao.mobile/ko/tools/banker-s-algorithm-tool/.

광고