Deadlock - 3

Jeong seulho·2023년 2월 21일
0

운영체제

목록 보기
15/35

📌deadlock avoidance method

  • 시스템에 상태를 계속 감시
  • 시스템이 deadlock 상태가 될 가능성이 있는 자원할당 요청을 보류
  • 시스템을 항상 safe state로 유지

📖safe state

  • 모든 프로세스가 정상적으로 종료될 수 있는 상태
  • safe sequence가 존재한다면 safe state

📖unsafe state

  • deadlock이 발생할 수 있는 상태
  • 반드시 deadlock이 발생한다는 보장은 없다.

📖기본 가정

  • 프로세스의 수가 고정되어 있다.
  • 자원의 종류와 수가 고정되어 있다.
  • 프로세스가 요구하는 자원 및 최대수량을 알고 있다.
  • 프로세스는 자원을 사용후 반드시 반납한다.

📖banker's algorithm

  • 한 종류의 자원이 여러개라는 가정
  • 시스템을 항상 safe state로 유지
  1. 자원을 빌려준 상태에서 각자 프로세스들이 자원을 더 빌려달라고 요청
  2. 빌려주고 난 후에도 safe state가 유지되는지 확인
  3. 유지 된다면 빌려주고 나중에 모든 자원을 반납받아서 다른 프로세스에게 빌려줄 수 있다.

📖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
    • 사실상 불가능한 가정을 가지고 있음

0개의 댓글