-
교착 상태의 개념
- 교착상태 (deadlock)
- 2개 이상의 프로세스가 서로 상대방의 작업이 끝나기만을 기다리고 있는 상태
- 결과적으로 아무도 완료되지 못함
- 교착상태와 기아 상태의 차이
- 교착상태: 아무리 기다려도 어떻게든지 해결되지 못함
- 기아상태: 기다리다보면 해소될 가능성이 있음
교착 상태의 특성
- 교착상태의 필요조건
- 네 가지 조건이 동시에 만족될 경우 교착상태가 발생할 수 있음
- 상호배제 조건
- 프로세스들이 자원에 대한 배타적인 통제권을 요구
- 적어도 하나 이상의 자원은 공동 사용될 수 없음
- 즉, 필요로 하는 자원을 다른 프로세스가 점유하고 있으면 반드시 대기해야 함
- 점유 대기 조건
- 프로세스가 이미 다른 자원을 할당받아 배타적으로 점유하고 있는 상황에서 다른 프로세스가 점유하고 있는 자원이 해제되기를 기다리는 상황
- 비선점 조건
- 프로세스에 할당된 자원은 그 프로세스가 사용을 마치고 스스로 반환하기 전에 제거되지 않음
- 즉, 다른 프로세스에 의해서는 해제되지 않음
- 환형 대기 조건
- 프로세스의 자원 점유 및 점유된 자원의 요구 관계가 환형을 이루며 대기
교착 상태 방지
- 교착상태 처리
- 교착상태 방지
- 교착상태의 필요조건 중 하나라도 발생할 수 없도록 막음
- 교착상태 회피
- 프로세스에 필요한 자원의 최대량에 대한 정보를 활용하여 교착상태가 발생하지 않도록 함
- 교착상태 탐지 및 복구
- 교착상태가 발생하면 이에 따른 적절한 조치를 취하여 정상 상태로 복구
6강 정리.
교착상태(deadlock)는 2개 이상의 작업이 서로 상대방의 작업이 끝나기만을 기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태이다.
교착상태의 필요조건은 상호배제, 점유 대기, 비선점, 환형 대기 조건이며, 이 조건들이 모두 만족될 경우 교착상태가 발생할 수 있다.
교착상태를 처리하는 방법은 교착상태를 방지하는 방법, 교착상태를 회피하는 방법, 교착상태를 탐지하여 이를 복구하는 방법 등이 있다.
교착상태를 방지하는 방법은 교착상태의 네 가지 필요조건 중 어느 하나라도 발생할 수 없도록 막는 방법이다.