공든탑앱 열기

교착 상태

정보처리기사 · 운영체제와 네트워크 기초 · 약 12분

쉽게 말하면

교착 상태는 두 프로세스가 서로 상대가 가진 자원을 기다리며 꼼짝 못 하는 상태예요. 좁은 골목에서 차 두 대가 마주 보고 서로 비켜 주길 기다리는 것과 같아요. 이런 일은 네 가지 조건이 모두 갖춰질 때만 생겨요. 그래서 조건 하나를 없애거나(예방), 위험해 보이면 자원을 안 주거나(회피), 생긴 걸 찾아서(발견) 풀어요(회복). 회피의 대표가 은행원 알고리즘이에요.

시험용 정의

교착 상태(Deadlock)는 둘 이상의 프로세스가 서로 상대가 가진 자원을 기다리며 무한정 멈춘 상태다. 필요 충분 조건 네 가지가 모두 성립해야 생긴다: 상호 배제(자원을 한 번에 한 프로세스만 사용), 점유와 대기(자원을 가진 채 다른 자원을 기다림), 비선점(다른 프로세스의 자원을 강제로 빼앗을 수 없음), 환형 대기(대기가 원형으로 이어짐). 해결 방법은 예방(네 조건 중 하나를 부정), 회피(안전 상태를 유지하도록 자원 할당, 은행원 알고리즘), 발견(자원 할당 그래프 등으로 탐지), 회복(프로세스 종료나 자원 선점)이다. 한편 기아 상태는 특정 프로세스가 우선순위가 낮아 계속 밀리는 것으로, 기다린 시간만큼 우선순위를 올리는 에이징으로 해결한다.

비유로 이해하기

좁은 외길 다리 양쪽에서 차가 동시에 들어와 서로 후진을 안 하는 상황이다. 한 번에 한 대만 지나가고(상호 배제), 이미 다리에 올라선 채 기다리고(점유와 대기), 억지로 끌어낼 수 없고(비선점), 서로가 서로를 기다린다(환형 대기).

자세히

먼저 알아 둘 말

말뜻
자원CPU, 메모리, 프린터, 파일처럼 프로세스가 쓰는 것
안전 상태모든 프로세스를 어떤 순서로든 끝까지 실행시킬 수 있는 상태
자원 할당 그래프프로세스와 자원의 할당·요청 관계를 그린 그래프. 사이클이 있으면 교착 가능
에이징오래 기다린 프로세스의 우선순위를 높여 기아를 막는 기법

예방: 조건 하나 없애기

부정할 조건방법
상호 배제자원을 공유 가능하게 (대부분 자원은 불가능)
점유와 대기필요한 자원을 한꺼번에 모두 요청해 받기
비선점다른 자원을 기다려야 하면 가진 자원을 내놓기
환형 대기자원에 번호를 매겨 번호 순서대로만 요청

회피: 은행원 알고리즘

다익스트라가 제안. 은행이 대출을 해 줄 때 모든 고객이 결국 갚을 수 있는지(안전 상태) 따져 보고 빌려주듯, 자원을 요청받으면 할당 후에도 안전 상태가 유지될 때만 할당한다. 각 프로세스의 최대 요구량을 미리 알아야 한다.

회복

  • 교착에 빠진 프로세스를 하나씩 종료하거나 모두 종료
  • 자원을 선점해 다른 프로세스에 할당 (희생자 선택, 롤백)

기출에서 더 나온 것

말뜻
교착 상태 해결 네 가지예방(Prevention: 네 조건 중 하나를 없앰), 회피(Avoidance: 은행원 알고리즘으로 안전할 때만 할당), 발견(Detection), 회복(Recovery)

시험에 이렇게 나와요

확인 문제

Q1. 교착 상태가 일어나기 위한 필요 조건이 아닌 것은?

  1. 환형 대기
  2. 점유와 대기
  3. 상호 배제
  4. 선점
정답 보기

4번 선점

필요 조건은 상호 배제, 점유와 대기, 비선점, 환형 대기다. '선점'이 아니라 비선점(자원을 강제로 빼앗을 수 없음)이 조건이다.

Q2. 은행원 알고리즘은 교착 상태 해결 방법 중 어디에 속하는가?

  1. 예방
  2. 회피
  3. 회복
  4. 발견
정답 보기

2번 회피

안전 상태를 유지하도록 할당하는 회피 기법.

Q3. 프로세스가 필요한 자원을 실행 전에 한꺼번에 요청하게 해 교착을 예방하는 것은 어떤 조건을 부정한 것인가?

  1. 비선점
  2. 상호 배제
  3. 환형 대기
  4. 점유와 대기
정답 보기

4번 점유와 대기

가진 채로 기다리는 일이 없어진다.

Q4. 자원에 번호를 붙이고 오름차순으로만 요청하게 하면 부정되는 조건은?

  1. 비선점
  2. 상호 배제
  3. 환형 대기
  4. 점유와 대기
정답 보기

3번 환형 대기

순서가 정해져 원형으로 이어질 수 없다.

헷갈리기 쉬운 O·X

교착 상태는 네 가지 필요 조건 중 하나만 있어도 발생한다.

정답 보기

X 네 조건이 모두 동시에 성립해야 한다.

에이징은 기아 상태를 해결하는 기법이다.

정답 보기

O

은행원 알고리즘은 교착 상태 예방 기법이다.

정답 보기

X 회피 기법이다.

함께 보면 좋은 개념