경쟁 상태(Race Condition) Race Condition이란, 여러 개의 프로세스가 동시에 공유 데이터에 접근할 때 실행 순서에 따라 결과 값이 달라지는 현상이다. 따라서 이런 경쟁 상태에서는 각 프로세스가 공유 데이터에 동시에 접근하지 못하도록 접근 순서를 제어하는 동기화가 필요하다. 경쟁 상태은 CPU가 하나인 경우에도 발생하는데, CPU가 하나인 경우에는 동시에 하나의 프로세스만 실행할 수 있고, 또 각각의 프로세스는 자신의 주소 공간에만 접근할 수 있는데 경쟁 상태가 발생하는 이유는 뭘까? 예를 들어 다음과 같은 상황이 있다. 프로세스 A는 특권 명령을 수행하려는데, 자신이 직접 수행할 수 없으므로 운영체제에게 부탁하기 위해 시스템 콜을 발생시킨다. CPU 제어권이 운영체제로 넘어오고, ..