2. Deadlock Avoidance - 아주 안전한 방법(Deadlock이 일어날 수 있는 가능성을 방지)
- 최대로 요청할 수 있는 자원을 요청해도 감당가능한 경우에만 자원 할당,
- 그렇지 않은 경우에는 일부 자원을 요청하더라도 자원을 할당해주지 않는다.
3. Deadlock Detection and Recovery
- Deadlock Detection
- 요청을 받아들일 수 없음. (자원을 내어주지 않으면서 조건을 충족하지 않음)
- Deadlock Recovery
- Process termination
- 모든 deadlock이 발생한 process로부터 자원을 빼앗는다.
- Resource Preemption
- 비용을 최소화할 victim의 선정
- safe state로 롤백하여 process restart
- Starvation - 항상 특정 프로세스만 선정이 된다면 발생할 수 있는 문제.
4. Deadlock Ignorance
- Deadlock이 발생하여도 대처하지 않음
- 사용자가 직접 대처하도록 하는 방법.
- 현재 대부분의 운영체제가 채택하는 방법(Unix, Windows)