본문/내용
1. 교착 상태의 개념과 발생 원인
교착 상태는 여러 프로세스가 서로의 자원을 기다리며 영원히 대기하는 상황을 의미한다. 이 상태는 각 프로세스가 점유하고 있는 자원과 필요한 자원 간의 경쟁으로 인해 발생한다. 예를 들어, 두 개의 프로세스가 서로 다른 자원 A와 B를 소유하고 있으며, 프로세스 1은 자원 B를 요청하고 프로세스 2는 자원 A를 요청하는 경우가 있다. 이때 두 프로세스는 서로가 가진 자원을 기다리게 되어 교착 상태에 빠지게 된다. 교착 상태가 발생하는 원인은 여러 가지가 있다. 첫 번째로 자원 경쟁이 있다. 시스템의 자원은 유한하며, 프로세스들이 자원을 확보하기 위해 경쟁할 수밖에 없다. 이 경쟁이 심해지면 프로세스 간의 상호 의존성이 생기고, 그 결과 특정 프로세스가 자원을 해제하지 않아 다른 프로세스가 계속 대기하는 상황이 발생할 수 있다. 둘째로 선점 불가능성이 있다. 어떤 자원은 한 번에 하나의 프로세스만 사용할 수 있으며, 사용 중인 자원을 다른 프로세스가 강제로 빼앗을 수 없는 경우가 있다. 이처럼 자원을 공유하는 데 필요한 규칙이 부재하거나 비효율적일 때 교착 상태가 자주 발생한다. 셋째로 비순환 대기 조…