1 · 선언 범위
Request[i] ≤ Need[i]
미리 밝힌 남은 최대 요구량 안인가?
아니면 → 잘못된 요청범위·가용량을 확인하고, 가상 할당 뒤에도 안전 순서가 남는지 검사한다.
Request[i] ≤ Need[i]
미리 밝힌 남은 최대 요구량 안인가?
아니면 → 잘못된 요청Request[i] ≤ Available
지금 가용 자원으로 요청을 충족할 수 있는가?
아니면 → 자원 반환까지 대기safe sequence exists?
모두 끝날 안전 순서가 하나라도 남는가?
아니면 → 가상 상태 롤백·대기실제 상태를 확정하기 전에 세 벡터를 임시 갱신한다.
Available − Request
Allocation + Request
Need − Request
임시 갱신을 확정하고 Pi를 계속 실행한다.
세 벡터를 원상 복구하고 요청을 보류한다.
판단 기준: “지금 줄 수 있다”와 “준 뒤에도 모두 끝난다”가 함께 참이어야 한다.