먼저 Dead Lock (교착 상태)이 무엇인지 알아보자. Dead Lock 이란 두 개 이상의 프로세스가 서로 상대방의 작업이 끝나기만을 기다리면서 결과적으로 아무도 완료되지 못하는 상태를 의미한다. 교착 상태가 발생하려면 4가지 조건이 필요하다. 조건은 아래와 같다. 상호 배제 (Mutual Exclusion) 한 번에 한 개의 프로세스만이 공유 자원을 사용할 수 있어야 한다. 점유 대기 (Hold and Wait) 프로세스가 할당된 자원을 가진 상태에서 다른 자원을 기다려야 한다. 비선점 (No preemption) 프로세스에게 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야 한다. 환형 대기 (Circular Wait) 각 프로세스는 순환적으로 다음 프로세스가 요구하는 자원을 가지고 있..