운영체제
스핀락(Spinlock) 뮤텍스(Mutex) 세마포어(Semaphore)
0. 기본 개념 경쟁 조건 (Race Condition) 여러 프로세스/스레드가 동시에 같은 데이터를 조작할 때 타이밍이나 접근 순서에 따라 결과가 달라질 수 있는 상황 동기화(Synchronization) 여러 프로세스/스레드를 동시에 실행해도 공유 데이터의 일관성을 유지하는 것 임계 영역(Critical Section) 공유 데이터의 일관성을 보장하기 위해 하나의 프로세스/스레드만 진입해서 실행 가능한 영역 상호 배제(Mutual Exclusion) 위의 임계 영역에서 설명한, 하나의 프로세스/스레드만 진입해서 실행한다는 것 또는 동시 프로그래밍에서 공유 불가능한 자원의 동시 사용을 피하기 위해 사용되는 알고리즘 그렇다면, 어떻게 이 상호 배제를 달성할 수 있을까요? 락(Lock)을 사용해서 이를 달..