필요 조건 확인
데드락이 되려면 네 조건이 모두 필요하므로 시스템에서 어떤 조건이 강하게 존재하는지 봅니다.
conditions데드락은 상호 배제, 점유와 대기, 비선점, 순환 대기가 동시에 성립할 때 발생합니다. 예방은 발생 뒤 탐지하는 것이 아니라, 자원 사용 규칙을 바꿔 이 네 조건 중 적어도 하나가 성립하지 않게 만드는 방법입니다.
데드락이 되려면 네 조건이 모두 필요하므로 시스템에서 어떤 조건이 강하게 존재하는지 봅니다.
conditions자원을 한 번에 모두 요청하게 하거나, 추가 요청 전 보유 자원을 놓게 할 수 있습니다.
hold-wait모든 자원에 전역 순서를 부여하고 그 순서대로만 획득하게 하면 순환 대기를 막습니다.
ordering너무 강한 예방은 병렬성을 낮추거나 starvation을 만들 수 있어 도메인별 균형이 필요합니다.
tradeoff