Ticket lock

Ahn9807 (토론 | 기여)님의 2023년 2월 4일 (토) 04:41 판 (새 문서: 분류: 동시성 프로그래밍 == 개요 == Spin lock은 Starvation문제가 발생한다. 이 문제를 해결하기 위해서 SpinLock의 lock value가 스스로의 owner value와 같을때까지 실행을 멈추는 Lock 구현방식이다. 마치 레스토랑에서 순서를 정하는 티켓을 배정받고 순서대로 레스토랑에 입장하는 것과 같다고 볼 수 있다. == 장단점 == === 장점 === * spin lock에 비하여 fair하다 === 단점 ===...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)


개요

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 이 필요하다.