Race Condition
·
⚙️ Ops/CS
💡 Race Condition 여러 개의 프로세스가 공유 자원에 동시 접근할 때 실행 순서에 따라 결과값이 달라질 수 있는 현상 임계구역은 아래의 세가지 요구조건을 만족해야 유효한 알고리즘이 된다 Mutual Exclusion(상호 배제) 하나의 자원에는 하나의 프로세스만 접근 가능할 수 있어야 함 Progress(진행) 임계구역이 비었으면 자원을 사용할 수 있어야 한다 (Deadlock Free) Bounded Waiting(한계 대기) 언젠가는 임계구역에 진입할 수 있어야 한다 > 경쟁상태는 메모리를 공유하기 때문에 발생하며 해결방법은 스레드의 순차적 실행(동기화)을 보장하면 됨 임계구역의 일반적인 형태 do { wants[i] = true; // 프로세스가 공유 자원을 사용하겠다고 선언 while ..