스핀락(SpinLock)과 CAS
서버 & 네트워크2025. 3. 26. 17:02스핀락(SpinLock)과 CAS

스핀락스핀락은 스핀락은 임계 영역(critical section)에 접근하기 위해 락을 획득할 때까지 CPU를 멈추지 않고 계속 루프를 돌면서 대기하는 방식의 동기화 기법이다. 장점으로는 '컨텍스트 스위칭이 발생하는 다른 동기화 기법보다 오버헤드가 낮다.'단점으로는 '다수의 쓰레드가 경쟁할 경우, CPU 사용률이 급격히 증가할 수 있다.' 스핀락기법을 사용할 때 컨텍스트 스위칭 비용이 다른 동기화 기법들 보다 낮은 이유는 System Call 호출을 통해 커널 모드로의 전환이 발생하지 않기 때문이다. 예로 this_thread::sleep_for(std::chrono::milliseconds(100)); 를 호출하게 되면 쓰레드는 '커널 모드'로의 전환이 발생한다.OS는 현재 쓰레드를 대기 목록에 추가하..

image