둘 이상의 프로세스가 서로 상대방에 의해 충족될 수 있는 event를 무한히 기다리는 현상
ex) 하드웨어 A → B로 자료를 옮기는 과정에서 A,B 세마포어를 모두 가져야만 하는 프로세스가 두 개 일때
P0에서 S를 획득한 상태에서 CPU를 뺏겨서 P1가 실행됨 → waiting
P1가 Q를 획득한 상태에서 S를 기다림 → waiting
각각 S와 Q는 임계구역을 빠져나가고 release 되는데, 그렇지 못하므로 deadlock에 빠짐
해결
공유 데이터에 대한 Syncronization 문제
버퍼가 유한하기 때문에 생기는 문제