DeadLock 3
JeongSeulho
2023년 02월 20일
준비중...
클립보드로 복사
📌deadlock avoidance method
- 시스템에 상태를 계속 감시
- 시스템이 deadlock 상태가 될 가능성이 있는 자원할당 요청을 보류
- 시스템을 항상 safe state로 유지
📖safe state
- 모든 프로세스가 정상적으로 종료될 수 있는 상태
- safe sequence가 존재한다면 safe state
📖unsafe state
- deadlock이 발생할 수 있는 상태
- 반드시 deadlock이 발생한다는 보장은 없다.
📖기본 가정
- 프로세스의 수가 고정되어 있다.
- 자원의 종류와 수가 고정되어 있다.
- 프로세스가 요구하는 자원 및 최대수량을 알고 있다.
- 프로세스는 자원을 사용후 반드시 반납한다.
📖banker’s algorithm
- 한 종류의 자원이 여러개라는 가정
- 시스템을 항상 safe state로 유지
- 자원을 빌려준 상태에서 각자 프로세스들이 자원을 더 빌려달라고 요청
- 빌려주고 난 후에도 safe state가 유지되는지 확인
- 유지 된다면 빌려주고 나중에 모든 자원을 반납받아서 다른 프로세스에게 빌려줄 수 있다.
📖banker’s algorithm 동작
-
safe sequence 존재
-
자원을 주었다고 가정해보고 safe sequence가 존재하는지 확인(존재하므로 빌려줄 수 있음)
-
safe sequence 존재하지 않음
-
자원을 주었다고 가정해보고 safe sequence가 존재하는지 확인(존재하지 않으므로 빌려줄 수 없음)
📖habermann’s algorithm
- 위 banker’s algorithm의 확장
- 여러 종류의 자원까지 고려
📌deadlock avoidance 특징
- high orverhead
- 항상 시스템 감시해야함
- low resource utilization
- 사용되지 않는 자원을 계속 보류
- not practical
- 사실상 불가능한 가정을 가지고 있음