Prevention · 정적 규칙
네 필요조건 중 하나가 항상 성립하지 않게 설계한다. 단순하지만 concurrency와 자원 이용률을 낮출 수 있다.
상호 배제공유 가능 자원화
점유·대기일괄 요청·선반납
비선점회수 가능한 자원 선점
순환 대기전역 lock 순서
은행원 알고리즘은 현재 deadlock만 찾는 검사가 아니다. 요청을 가상 승인한 뒤 모든 process가 끝날 수 있는 safe sequence를 증명한다.
네 필요조건 중 하나가 항상 성립하지 않게 설계한다. 단순하지만 concurrency와 자원 이용률을 낮출 수 있다.
상호 배제공유 가능 자원화
점유·대기일괄 요청·선반납
비선점회수 가능한 자원 선점
순환 대기전역 lock 순서
Available, Max, Allocation과 Need = Max − Allocation을 알고 요청 뒤에도 safe state인지 계산한다. 최대 요구량을 모르면 적용하기 어렵다.
Request ≤ Need·Available을 확인한다.Needᵢ ≤ Work인 미완료 process를 찾는다.Work += Allocationᵢ.Work=[3,3,2]→P1 완료→P3 완료→P0 완료따라서 요청 뒤에도 완료 순서가 남는다.
Unsafe ≠ deadlocked아직 멈추지 않았어도 이후 요청에 따라 deadlock에 빠질 수 있어 회피가 거부한다.
예방 규칙의 비용lock 순서·일괄 요청이 실제 병렬성과 latency를 얼마나 줄이는지 측정한다.
입력 계약process 수명과 최대 claim이 안정적인 폐쇄형 자원 모델에서만 계산을 신뢰한다.