본문/내용
1. 교착상태의 개념
교착상태란 둘 이상의 프로세스가 서로가 필요로 하는 자원을 점유하고 있으면서 동시에 각각이 다른 프로세스가 점유하고 있는 자원을 기다리는 상태를 의미한다. 이러한 상황이 발생하면 해당 프로세스들은 무한정 기다리며 결국 진행이 정지되는 현상이 나타난다. 예를 들어, 한 시스템에서 두 프로세스 A와 B가 각각 프린터와 스캐너를 점유하고 있다고 가정하자. 프로세스 A는 프린터를 사용하다가 스캐너가 필요하였고, 프로세스 B는 스캐너를 사용하려 하는데, 이때 둘이 서로의 자원을 기다리면서 교착 상태에 빠지는 것이다. 실제 시스템에서 교착상태의 발생률은 전체 프로세스 중 약 20~30% 정도로 보고되고 있으며, 특히 자원의 경쟁이 치열한 멀티프로세서 환경에서는 그 비율이 더욱 높아지는 경향이 있다. 2xxx년 한 조사에 따르면, 서버 가용성 확보를 위한 교착상태 방지 기술이 미적용된 시스템에서는 전체 다운 시간의 약 15% 이상이 교착상태로 인한 것이라고 보고된 바 있다. 교착상태는 자원 할당 알고리즘의 부적절, 프로세스의 비효율적 설계, 동기화 문제 등 다양한 원인으로 발생할 수 있으며, 특히 다중 사용자 환경이나 온…