- 두 개 이상의 프로세스가 공통 자원을 동시에 읽거나 쓰는 동작을 할 때 발생
- 공용 데이터를 어떤 순서로 접근하냐에 따라 실행 결과가 달라지는 경우
- 말그대로 두 스레드가 하나의 자원을 사용하기 위해 서로 경쟁하는 상태
두 개 이상의 프로세스가 공용 데이터에 동시 접근하는 것을 막기 위해 한 프로세스가 공용 데이터를 사용하고 있으면 해당 자원을 사용하지 못하도록 막거나, 다른 프로세스가 자원을 사용하지 못하도록 막는 방법
- '기아 상태'
- 프로세스들이 더이상 진행을 하지 못하고 영구족으로 블록되는 상태
- 시스템 자원에 대한 경쟁 도중 발생 가능하며 프로세스간의 통신 과정에서도 발생 가능
- 두개 이상의 작업이 서로 상대방의 작업이 끝나는 것만을 기다리고 있기 떄문에 결과적으로 아무것도 완료되지 못함