[운영체제] 교착상태(deadlock)

Peter·2021년 10월 4일
0

운영체제

목록 보기
21/22

교착상태(deadlock)

  • 무한 대기 상태: 두개 이상의 작업이 서로 끝날때까지 기다린채 아무 작업도 실행하지 않고 있는 상태

교착상태 조건

  • 상호배제(Mutual exclusion): 프로세스들이 필요로 하는 자원에 대해 배타적인 통제권 요구
  • 점유대기(Hold and wait): 프로세스가 할당된 자원을 가진 상태로 다른 자원을 기다림, 프로세스들이 서로 기다림
  • 비선점(No preemption): 프로세스가 어떤 자원의 사용을 끝낼 때까지 그 자원을 못뺏음
  • 순환대기(Circular wait): 프로세스들이 다른 프로세스들이 다음단계에서 진행을 위해 필요한 자원을 동시에 가지고 있음(머리 끄댕이 잡고 너가 먼저 놔)

교착상태 예방

  1. 상호배제 조건 제거
  2. 한번에 모든 자원 점유 해제시켜 점유대기 조건 제거
  3. 선점 가능 기법을 부여해 비선점 조건을 제거
  4. 자원 점유 순서를 정해 순환대기 조건을 제거

교착상태 회피

  • 교착상태 조건 1, 2, 3을 제거하면 비효율적으로 프로세스가 실행됨
  • 4번 조건을 제거해줌

교착상태 발견과 회복

교착상태 발견

  • 교착 상태를 점검해 교착 상태에 있는 프로세스와 자원 발견

교착상태 회복

  • 교착 상태를 일으킨 프로세스 종료, 교착 상태 프로세스의 자원을 선점
profile
컴퓨터가 좋아

0개의 댓글