개요
Spin lock은 Starvation문제가 발생한다. 이 문제를 해결하기 위해서 SpinLock의 lock value가 스스로의 owner value와 같을때까지 실행을 멈추는 Lock 구현방식이다. 마치 레스토랑에서 순서를 정하는 티켓을 배정받고 순서대로 레스토랑에 입장하는 것과 같다고 볼 수 있다.
장단점
장점
- spin lock에 비하여 fair하다
단점
- spin lock과 마찬가지로 Scalable하지 않다.
- 잦은 Cache line update로 performance down이 크다.
- spin lock에 더하여 추가적인 test and set 이 필요하다.