동기화는 공유 데이터의 일관성을 위해 프로세스들 간에 실행 순서를 적절히 유지할 수 있도록 해주는 것이다. 하지만 상호배제의 조건을 만족시켰어도 데드락의 문제가 발생할 수 있다. 데드락은 죽어있는 잠김 상태, 전혀 풀릴 수 없는 잠김 상태를 의미한다. 즉, 프로세스의 관점에서 본다면, 어떤 집합에 속한 프로세스들 모두가 대기 상태로서 존재하는데 이들이 기다리는 이벤트가 이 집합 속의 다른 프로세스에 의해서 발생해야 할 때를 말한다. 예를 들어 신호등이 없는 사거리 상황에서 모두 앞이 막혀 진행하지 못할 때가 그렇다. 자원의 요청과 할당을 도식화로 표현한 것이 자원 할당 그래프다. 자원은 공유 데이터를 말하는데 그래프에서는 프로세스와 함께 노드로 표현하고 특정 자원에 대해 여러 개의 종류가 존재할 수 ..