Deadlock - 2

Jeong seulho·2023년 2월 20일
0

운영체제

목록 보기
14/35

📌Deadlock의 그래프 모델

  • 프로세스 -> 자원은 해당 프로세스가 자원을 요청
  • 자원 -> 프로세스는 자원이 프로세스에게 할당 됨

📌Deadlock의 state transition 모델

프로세스가 2개인 예

  • edge는 해당 번호의 프로세스가 개입
  • 노드의 숫자 2개는 각각 현재 프로세스의 상태
  • P1이 R1보유 R2를 요청 + P2가 R2보유 R1을 요청시 데드락

📌deadlock의 발생 필요조건

  • 자원의 특성
    • Exclusive use of resources : 자원을 독점적으로 사용해야함
    • Non-preemptive resource : 자원을 빼앗을 수 없음
  • 프로세스의 특성
    • hold and wait(partial allocation) : 자원을 보유하고 있으면서 다른 자원을 기다림
    • circular wait : 자원을 요청하는 순서가 순환적임

📌deadlock의 해결 방법

deadlock prevention methods

  • 4가지의 조건 중 하나를 제거
  1. 모든 자원을 공유 가능하게 만듬
    • exclusive use of resources를 제거
    • 사실상 불가능
  2. 모든 자원에 대해 선점 가능하게 만듬
    • non-preemptive resource를 제거
    • 사실상 불가능
    • 유사 방법 : 프로세스A가 자원A를 사용중에 프로세스B가 자원A를 요청하면 프로세스A가 하던 작업을 취소하고 자원을 반납(매우 비효율적)
  3. 필요한 자원 한번에 모두 할당
    • hold and wait를 제거
    • 자원 낭비가 심함(필요하지 않은 순간에도 자원을 보유)
    • 다른 프로세스들의 대기 시간이 길어짐
  4. 자원들에 순서를 부여
    • circular wait를 제거
    • 자원의 순서를 정해놓고 순서의 증가 방향으로만 자원을 요청(1자로 만듬)
    • 자원 낭비 발생(사용 가능한 자원이 있어도 사용하지 못함)

0개의 댓글