OS: Semaphore 예제
두 개 이상의 프로세스가 동시에 공유 자원에 접근할 때, 접근 순서에 따라 결과가 달라지는 Race condition 문제가 발생할 수 있다. 예를 들어 2개의 프로세스가 count 변수에 접근한다고 생각해 보자.int count = 0;void process_A() { Load R, count; Add R, 1; Store R, count;}void process_B() { Load R, count; Add R, 1; Store R, count;}Process A → B 순서로 접근하면 count는 2가 되어야 한다. 그런데 A가 R을 Load 한 상태에서 preemption 되었다고 하자. 그럼 B도 count가 0인 상태로 가져간다. 두 프로세스 모두 0 + 1을 계..