데드락(Deadlock)이란? - 프로세스나 쓰레드가 얻고자 하는 자원을 얻지 못해, 교착 상태에 빠진 것 데드락 발생 조건 아래 4개의 조건 모두를 만족한다면 잠재적으로 데드락이 발생할 가능성이 있다. 1. 상호 배제(Mutual Exclusion) - 자원은 한번에 하나의 프로세스나 쓰레드만 사용할 수 있다 2. 점유 대기 - 프로세스가 최소 하나의 할당된 자원을 갖고 있으면서 다른 자원을 기다린다 3. 비선점 - 다른 프로세스가 갖고 있는 자원을 강제로 빼앗을 수 없다 4. 순환 대기 - 각 프로세스는 다음 프로세스가 점유중인 자원을 순환적으로 대기중이다. 예를 들어서 P1, P2, P3 프로세스가 있고, P1은 R1, P2은 R2, P3는 R3 이렇게 각각 리소스를 점유중일 때, P1는 R2을 기..