13 교착 상태
13-1. 교착 상태란
교착 상태
두 개 이상의 프로세스가 각자 가지고 있는 자원을 무작정 기다린다면
어떤 프로세스도 더 이상 진행할 수 없는 교착 상태가 된다.
- 식사하는 철학자 문제 : 교착 상태를 설명하기 위한 상황
- 자원 할당 그래프 : 교착 상태를 단순하게 표현하는 간단한 그래프(or 방법)
교착 상태 발생 조건
상호 배제
- 한 프로세스가 사용하는 자원을 다른 프로세스가 사용할 수 없을 때
- → 특정 자원을 동시에 여러 트랜잭션에 의해 점유될 수 없을 때
점유와 대기
- 자원을 보유한 채 다른 자원을 기다려서 문제가 발생함.
프로세스도 어떠한 자원을 할당받은 상태에서 다른 자원을 할당받기를 기다리는 상태
- → 트랜잭션이 하나 이상의 자원을 점유한 상태에서 추가 자원이 생기기를 기다리는 상황
비선점
- 비선점 자원은 그 자원을 이용하는 프로세스의 작업이 끝나야만 이용할 수 있음.
어떤 프로세스도 다른 프로세스의 자원을 강제로 빼앗지 못했기 때문에 교착 상태가 발생했다고 볼 수 있음
- → 이미 다른 트랜잭션에 할당된 자원을 강제로 빼앗을 수 없는 조건 (자원의 회수가 쉽게 이루어지지 않음)
원형 대기