컴퓨터 과학
교착상태(DeadLock)
Sh.TK
2017. 12. 15. 16:31
https://ko.wikipedia.org/wiki/교착_상태
데드락: 두 개 이상의 작업이 서로 상대방의 작업이 끝나기만 기다리는 상황.
- 상호배제: 프로세스들이 필요로 하는 자원에 대해 배타적인 통제권을 요구한다.
- 점유대기: 프로세스가 할당된 자원을 가진 상태에서 다른 자원을 기다린다.
- 비선점: 프로세스가 어떤 자원의 사용을 끝낼 때까지 그 자원을 뺏을 수 없다.
- 순환대기: 각 프로세스는 순환적으로 다음 프로세스가 요구하는 자원을 가지고 있다.
예방:
- 상호배제 조건의 제거: 자원을 공유 불가능한 상태로 만듬.
- 점유와 대기 조건의 제거: 한 프로세스에 수행되기 전에 모든 자원을 할당시키고 나서 점유하지 않을 때에는 다른 프로세스가 자원을 요구하도록 하는 방법.
- 비선점 조건의 제거: 프로세스가 어떤 자원이 끝나지 않더라도 자원을 선점 가능하도록 프로토콜을 만들어준다.
- 환형 대기 조건의 제거: 자원 유형에 따라 순서를 매긴다.