Background 병렬 수행(Concurrent Execution)은 여러 프로세스가 동시에 실행되는 것이다. 이러한 프로세스는 언제든 인터럽트가 발생할 수 있으며, 이 경우 현재 실행 중인 작업을 부분적으로만 완료하게 된다. 이와 같은 병렬 수행 환경에서는 공유 데이터에 대한 동시 접근이 데이터 불일치를 초래할 수 있다. 이를 해결하기 위해 협력하는 프로세스들 사이에서 순차적 실행을 보장하는 메커니즘이 필요하다. 예를 들어 '생산자-소비자 문제'는 생산자가 데이터를 생성하여 버퍼에 넣고, 소비자가 그 데이터를 사용한다. 이때 모든 버퍼를 채우는 것이 목표라면, 버퍼의 수를 추적하는 정수 카운터를 사용할 수 있다. 카운터는 초기에 0으로 설정되고 생산자가 새로운 데이터를 생성하여 버퍼에 넣을 때마다 증..