13-1. 교착 상태란
Deadlock
일어나지 않을 일을 기다림으로 인해 진행이 멈춰버리는 현상
A - 자원 1 점유 및 자원 2 대기 상태 / B - 자원 2 점유 및 자원 1 대기 상태
이미 점유된 상대방의 자원을 서로 원해서 대기하는 상태
자원 할당 그래프
Resource-Allocation Graph

- 프로세스 - 원 / 자원 - 사각형
- 사용 가능한 자원의 개수는 사각형 내에 점으로 표현
- 프로세스가 자원을 할당받아 사용 중이면, 자원에서 프로세스 방향으로 화살표 표시
- 프로세스가 자원 할당 대기 중이면, 프로세스에서 자원으로 방향으로 화살표 표시
교착 상태 발생 조건
- 상호 배제
- Mutual Exclusion
- 한 프로세스가 사용하는 자원을 다른 프로세스가 이용할 수 없는 경우
- 점유와 대기
- Hold and Wait
- 자원을 할당받은 상태에서 다른 자원 할당을 기다리는 경우
- 비선점
- nonPreemptive
- 다른 프로세스가 자원 사용을 끝내야만 이용할 수 있는 경우
- 강제로 빼앗지 못하는 경우
- 원형 대기
- Circular Wait
- 프로세스 및 할당 받은 자원들이 원의 형태를 이루는 경우에 발생할 수 있음
- 무조건 교착 상태가 발생하는 것은 아님