본문/내용
1. 교착상태의 발생 원인
교착상태는 여러 프로세스나 스레드가 서로 자원을 소유하고 있으며, 동시에 다른 프로세스가 요구하는 자원을 기다리면서 발생하는 상황을 의미한다. 이러한 교착상태는 주로 자원 경쟁, 비선점 자원 할당, 비선점 대기 조건 등의 요인에 의해 발생한다. 첫째, 자원 경쟁은 여러 프로세스가 제한된 수의 자원을 공유할 때 빈번하게 일어난다. 프로세스가 필요로 하는 자원이 모두 사용 중일 경우, 각 프로세스는 다른 프로세스가 소유한 자원을 기다리게 되고 결국 상황이 교착상태로 이끌린다. 둘째, 비선점 자원 할당은 프로세스가 특정 자원을 점유하고 있을 때, 다른 프로세스가 그 자원을 강제로 빼앗을 수 없도록 하는 특성을 말한다. 이 경우 한 프로세스가 점유하고 있는 자원을 반환하기를 기다리며 다른 자원에 접근할 수 없는 프로세스가 생기게 되어 교착상태가 발생한다. 셋째, 비선점 대기 조건은 프로세스가 점유하고 있는 자원이 아닌 다른 자원을 기다리고 있는 경우 발생한다. 이와 같은 비선점 대기 상황에서는 프로세스들이 서로 소유한 자원을 필요로 하며, 결국 각각 대기하게 되어 교착상태에 빠지게 된다. 이러한 원인들…