스핀락 최적화로 4스레드 성능 5.7배, 에너지 5.4배 절약
Optimizing a Spin-Lock

스핀락은 절대 잠들지 않는 락이다. 스케줄러에 양보하지 않고 CPU에서 계속 돌면서 기다린다. 이 글은 단계별로 스핀락을 개선해 최종적으로 4스레드에서 246ns에서 43.0ns로 5.7배 빨라지고, 에너지 소비는 64.92J에서 11.92J로 5.4배 줄어든 버전을 만든다. 메모리 순서 완화, test-and-test-and-set, 지수 백오프를 적용하며 각 단계의 벤치마크와 perf 결과를 제시한다.
스핀락은 절대 잠들지 않는 락이다. 스케줄러에 양보하는 대신 스레드는 CPU에 남아서 돌면서 기다린다. 시스템 콜도, 컨텍스트 스위치도 없다.