Computer Science

[운영체제] Deadlock, 교착상태의 개념과 조건

Supreme_YS 2022. 2. 28. 12:00
  • 교착상태(Deadlock)란?
    • 프로세스가 자원을 얻지 못해 다음 처리를 하지 못하는 상태.
    • 한정된 자원을 여러 곳에서 사용하려고 할 때 발생한다.

 

  • 교착상태 발생의 4가지 조건
    • 교착상태가 발생하기 위해서는 다음의 네가지 조건이 충족되어야 하는데, 이 네가지 조건중 하나라도 충족되지 않으면 교착상태가 발생하지 않는다.
    • 상-점-비-환
      • 상호배제 : 자원은 한 번에 하나의 프로세스만 사용할 수 있어야 한다.
      • 점유대기 : 이미 자원을 사용중인데, 다른 프로세스가 사용중인 자원을 사용하기 위해 대기하고 있는 상태의 프로세스가 존재해야 한다. 즉, 미리 줄 서있어야 한다.
      • 비선점 : 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없다. 즉, 새치기 금지!
      • 환형대기(순환대기) : 공유자원을 사용하기 위해 대기하는 프로세스들이 원형으로 구성되어 있어 자신에게 할당된 자원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구해야 한다. 점유 대기와 비슷한 개념인데 모양이 원 모양처럼 되어 있다해서 환형대기라고 한다!

 

  • 교착상태 해결 기법
    • 예-피-발-복
      • 예방 : 교착상태 예방 기법은 교착상태가 발생하지 않도록 사전에 시스템을 제어하는 방법으로 교착상태 발생의 네가지 조건 중에서 어느 하나를 제거함으로써 수행된다. 자원 낭비가 가장 심한 기법
      • 회피 : 교착상태가 발생할 가능성을 배제하지 않고 교착상태가 발생하면 적절히 피해나가는 방법으로, 주로 *은행원 알고리즘(Banker's Algorithm)이 사용됨
      • 발견 : 교착상태 발견 기법은 시스템에 교착상태가 발생했는지 점검하여 교착상태에 있는 프로세스와 자원을 발견하는 것을 의미함. 교착상태 발견 알고리즘을 사용한다던가 자원 할당 그래프 등을 사용할 수 있다.
      • 회복 : 교착상태 회복 기법은 교착상태를 일으킨 프로세스를 종료하거나 교착상태의 프로세스에 할당된 자원을 선점하여 프로세스나 자원을 회복하는 것을 의미한다.