본문 바로가기

CS지식/운영체제

운영체제 : Deadlocks

System Model

프로세스는 자원을

  • 요청
  • 사용
  • 해제

Deadlock 발생 조건


  • Deadlock : 두개 이상의 스레드가 절대 일어나지 않을 이벤트를 기다리는 상황
  • 동시에 실행하는 스레드의 개수가 많을수록 발생 가능성이 높아진다.
  1. Mutual exclusion (상호 배제) : 동시에 임계 영역에 진입하는 것 방지
  2. Hold-and-Wait : 하나를 가지고 있으면서 자원을 기다리고 있는 것
  3. No preemption for resource : 비선점
  4. Circular wait : 환형 대기

Deadlock Prevention

circular wait 해소 : 자원 할당 등수를 정하자 → 효율 떨어짐

 

Deadlock Avoidance

교착상태가 발생할 것 같은지 Dynamic하게 조사해야 한다.

  • safe state → 교착상태 X
  • unsafe state → 교착상태 가능성이 있다.
  • 회피 → 시스템이 절대로 unsafe 상태에 들어가지 않도록 한다.

Banker’s Algorithm

  • Available : 어떤 유형의 자원의 사용 가능한 인스턴스 개수
  • Max : 한 스레드에서 작업을 끝내기 위해 필요한 자원의 개수
  • Allocation : 할당된 자원의 개수
  • Need : 필요한 자원의 개수

→ 안정상태인지 불안정상태인지 판단

 

Deadlock Detection


  • 이전의 상태로 되돌아가는 것 등
  • 지속해서 현재 상태를 검사하며 또한 프로세스를 종료시킨 후 다시 시작해야 하는 등 많은 비용이 듬 → 비효율