대기 관계 수집
누가 어떤 자원을 보유하고 누구의 자원을 기다리는지 그래프나 행렬로 만든다.
wait relation데드락 탐지는 자원 인스턴스 수에 따라 대기 그래프 또는 행렬 알고리즘으로 순환 가능성을 찾고 복구 비용을 비교한다.
누가 어떤 자원을 보유하고 누구의 자원을 기다리는지 그래프나 행렬로 만든다.
wait relation자원마다 인스턴스가 하나면 wait-for graph의 cycle이 deadlock을 의미한다.
cycle여러 인스턴스는 Available, Allocation, Request 행렬로 완료 가능한 프로세스를 반복 제거한다.
행렬 기반 탐지프로세스 종료, 자원 선점, 체크포인트 rollback 중 손실이 가장 작은 방법을 고른다.
recoverybuild wait-for graph
if cycle exists:
choose victim -> terminate or preempt -> recheck