교착 상태
- 두 개 이상의 작업이 서로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태
자원 할당 그래프 (resource-allocation graph)
- 방법
- 프로세스는 원으로, 자원의 종류는 사각형으로 표현
- 사용할 수 있는 자원의 개수는 사각형 내의 점으로 표현
- 자원(점) → 프로세스 화살표 : 프로세스가 해당 자원을 할당 받아서 사용 중인 상태
- 프로세스 → 자원(사각형) : 프로세스가 해당 종류의 자원을 기다리고 있는 상태
- 교착 상태는 자원 할당 그래프가 원의 형태를 갖는다.
- 원의 형태가 아니면 교착 상태가 아니다. (대우)
- 원의 형태라고 해서 항상 교착 상태는 아니다. (역 성립 x)
교착 상태 발생 조건
- 조건을 모두 만족할 때 교착 상태가 발생할 가능성이 생긴다.
- 하나라도 만족하지 않으면 교착 상태가 발생하지 않는다.
- 상호 배제 (mutual exclusion)
- 한 프로세스가 사용하는 자원을 다른 프로세스가 사용할 수 없는 경우
- 점유와 대기 (hold and wait)
- 자원을 할당받은 상태에서 다른 자원을 할당받기를 기다리는 경우
- 비선점 (nonpreemptive)
- 프로세스가 자원을 비선점하는 경우
- 자원을 사용하는 프로세스의 작업이 끝나야만 그 자원을 사용할 수 있다.
- 원형 대기 (circular wait)
- 프로세스들이 원의 형태로 자원을 대기하는 경우
교착 상태 해결 방법
교착 상태 예방