Dead Lock ( 교착 상태 )

·
Software Engineering/Software Development Principles
교착 상태란 여러 프로세스나 스레드가 자원을 요청할 때 발생할 수 있는 문제입니다. 각 프로세스가 다른 프로세스가 보유한 자원을 기다리면서, 그 자원들이 동시에 다른 프로세스에 의해 요구되어 아무도 진행하지 못하고 영원히 기다리는 상태를 말합니다. 흔히 다중프로세스나 다중스레드에 발생할 수 있는 문제이며 이 교착 상태가 발생할 수 있는 조건은 다음과 같이 있습니다.상호배제 : 하나의 자원을 동시에 하나의 프로세스만 사용할 수 있어야 한다.점유대기 : 어떤 프로세스가 하나 이상의 리소스를 점유하고 있으면서 다른 프로세스가 가지고 있는 리소스를 요구하고 있습니다.비선점 : 프로세스가 사용 중인 자원은 중간에 다른 프로세스가 빼앗을 수 없어야 합니다.환형대기 : 각 프로세스는 원을 그리며 다음 프로세스가 요구..